diff --git a/arch/arm/mach-stm32mp/bsec.c b/arch/arm/mach-stm32mp/bsec.c
index a41824c..17d2dd6 100644
--- a/arch/arm/mach-stm32mp/bsec.c
+++ b/arch/arm/mach-stm32mp/bsec.c
@@ -295,7 +295,7 @@
 				 STM32_SMC_READ_OTP,
 				 otp, 0, val);
 
-	plat = dev_get_platdata(dev);
+	plat = dev_get_plat(dev);
 
 	/* read current shadow value */
 	ret = bsec_read_shadow(plat->base, &tmp_data, otp);
@@ -326,14 +326,14 @@
 				 STM32_SMC_READ_SHADOW,
 				 otp, 0, val);
 
-	plat = dev_get_platdata(dev);
+	plat = dev_get_plat(dev);
 
 	return bsec_read_shadow(plat->base, val, otp);
 }
 
 static int stm32mp_bsec_read_lock(struct udevice *dev, u32 *val, u32 otp)
 {
-	struct stm32mp_bsec_platdata *plat = dev_get_platdata(dev);
+	struct stm32mp_bsec_platdata *plat = dev_get_plat(dev);
 
 	/* return OTP permanent write lock status */
 	*val = bsec_read_lock(plat->base + BSEC_WRLOCK_OFF, otp);
@@ -350,7 +350,7 @@
 				      STM32_SMC_PROG_OTP,
 				      otp, val);
 
-	plat = dev_get_platdata(dev);
+	plat = dev_get_plat(dev);
 
 	return bsec_program_otp(plat->base, val, otp);
 
@@ -365,7 +365,7 @@
 				      STM32_SMC_WRITE_SHADOW,
 				      otp, val);
 
-	plat = dev_get_platdata(dev);
+	plat = dev_get_plat(dev);
 
 	return bsec_write_shadow(plat->base, val, otp);
 }
@@ -475,7 +475,7 @@
 
 static int stm32mp_bsec_ofdata_to_platdata(struct udevice *dev)
 {
-	struct stm32mp_bsec_platdata *plat = dev_get_platdata(dev);
+	struct stm32mp_bsec_platdata *plat = dev_get_plat(dev);
 
 	plat->base = (u32)dev_read_addr_ptr(dev);
 
@@ -493,7 +493,7 @@
 	 */
 
 	if (!IS_ENABLED(CONFIG_TFABOOT) && !IS_ENABLED(CONFIG_SPL_BUILD)) {
-		plat = dev_get_platdata(dev);
+		plat = dev_get_plat(dev);
 
 		for (otp = 57; otp <= BSEC_OTP_MAX_VALUE; otp++)
 			if (!bsec_read_SR_lock(plat->base, otp))
@@ -531,7 +531,7 @@
 		return false;
 	}
 
-	plat = dev_get_platdata(dev);
+	plat = dev_get_plat(dev);
 	if (readl(plat->base + BSEC_DENABLE_OFF) & BSEC_DENABLE_DBGSWENABLE)
 		return true;
 
diff --git a/arch/x86/cpu/apollolake/hostbridge.c b/arch/x86/cpu/apollolake/hostbridge.c
index cb5a816..a8ae6e4 100644
--- a/arch/x86/cpu/apollolake/hostbridge.c
+++ b/arch/x86/cpu/apollolake/hostbridge.c
@@ -158,7 +158,7 @@
 
 static int apl_hostbridge_early_init_pinctrl(struct udevice *dev)
 {
-	struct apl_hostbridge_platdata *plat = dev_get_platdata(dev);
+	struct apl_hostbridge_platdata *plat = dev_get_plat(dev);
 	struct udevice *pinctrl;
 	int ret;
 
@@ -172,7 +172,7 @@
 
 static int apl_hostbridge_early_init(struct udevice *dev)
 {
-	struct apl_hostbridge_platdata *plat = dev_get_platdata(dev);
+	struct apl_hostbridge_platdata *plat = dev_get_plat(dev);
 	u32 region_size;
 	ulong base;
 	u32 reg;
@@ -223,7 +223,7 @@
 
 static int apl_hostbridge_ofdata_to_platdata(struct udevice *dev)
 {
-	struct apl_hostbridge_platdata *plat = dev_get_platdata(dev);
+	struct apl_hostbridge_platdata *plat = dev_get_plat(dev);
 	struct udevice *pinctrl;
 	int ret;
 
diff --git a/arch/x86/cpu/apollolake/pmc.c b/arch/x86/cpu/apollolake/pmc.c
index 10a4b02..f186c50 100644
--- a/arch/x86/cpu/apollolake/pmc.c
+++ b/arch/x86/cpu/apollolake/pmc.c
@@ -111,7 +111,7 @@
 int apl_pmc_ofdata_to_uc_platdata(struct udevice *dev)
 {
 	struct acpi_pmc_upriv *upriv = dev_get_uclass_priv(dev);
-	struct apl_pmc_platdata *plat = dev_get_platdata(dev);
+	struct apl_pmc_platdata *plat = dev_get_plat(dev);
 
 #if !CONFIG_IS_ENABLED(OF_PLATDATA)
 	u32 base[6];
@@ -169,7 +169,7 @@
 static int enable_pmcbar(struct udevice *dev)
 {
 	struct acpi_pmc_upriv *upriv = dev_get_uclass_priv(dev);
-	struct apl_pmc_platdata *priv = dev_get_platdata(dev);
+	struct apl_pmc_platdata *priv = dev_get_plat(dev);
 	pci_dev_t pmc = priv->bdf;
 
 	/*
diff --git a/arch/x86/cpu/apollolake/uart.c b/arch/x86/cpu/apollolake/uart.c
index 44eba0c..bb6da03 100644
--- a/arch/x86/cpu/apollolake/uart.c
+++ b/arch/x86/cpu/apollolake/uart.c
@@ -77,7 +77,7 @@
 
 static int apl_ns16550_probe(struct udevice *dev)
 {
-	struct ns16550_platdata *plat = dev_get_platdata(dev);
+	struct ns16550_platdata *plat = dev_get_plat(dev);
 
 	if (!CONFIG_IS_ENABLED(PCI))
 		apl_uart_init(plat->bdf, plat->base);
@@ -88,7 +88,7 @@
 static int apl_ns16550_ofdata_to_platdata(struct udevice *dev)
 {
 #if CONFIG_IS_ENABLED(OF_PLATDATA)
-	struct dtd_intel_apl_ns16550 *dtplat = dev_get_platdata(dev);
+	struct dtd_intel_apl_ns16550 *dtplat = dev_get_plat(dev);
 	struct ns16550_platdata *plat;
 
 	/*
diff --git a/arch/x86/cpu/broadwell/sata.c b/arch/x86/cpu/broadwell/sata.c
index fdb6eec..829751e 100644
--- a/arch/x86/cpu/broadwell/sata.c
+++ b/arch/x86/cpu/broadwell/sata.c
@@ -41,7 +41,7 @@
 
 static void broadwell_sata_init(struct udevice *dev)
 {
-	struct sata_platdata *plat = dev_get_platdata(dev);
+	struct sata_platdata *plat = dev_get_plat(dev);
 	u32 reg32;
 	u8 *abar;
 	u16 reg16;
@@ -211,7 +211,7 @@
 
 static int broadwell_sata_enable(struct udevice *dev)
 {
-	struct sata_platdata *plat = dev_get_platdata(dev);
+	struct sata_platdata *plat = dev_get_plat(dev);
 	struct gpio_desc desc;
 	u16 map;
 	int ret;
@@ -234,7 +234,7 @@
 
 static int broadwell_sata_ofdata_to_platdata(struct udevice *dev)
 {
-	struct sata_platdata *plat = dev_get_platdata(dev);
+	struct sata_platdata *plat = dev_get_plat(dev);
 	const void *blob = gd->fdt_blob;
 	int node = dev_of_offset(dev);
 
diff --git a/arch/x86/cpu/intel_common/itss.c b/arch/x86/cpu/intel_common/itss.c
index ea6aa43..9f354ed 100644
--- a/arch/x86/cpu/intel_common/itss.c
+++ b/arch/x86/cpu/intel_common/itss.c
@@ -184,7 +184,7 @@
 	int ret;
 
 #if CONFIG_IS_ENABLED(OF_PLATDATA)
-	struct itss_platdata *plat = dev_get_platdata(dev);
+	struct itss_platdata *plat = dev_get_plat(dev);
 	struct dtd_intel_itss *dtplat = &plat->dtplat;
 
 	/*
diff --git a/arch/x86/cpu/intel_common/p2sb.c b/arch/x86/cpu/intel_common/p2sb.c
index 5f7ae2d..804835a 100644
--- a/arch/x86/cpu/intel_common/p2sb.c
+++ b/arch/x86/cpu/intel_common/p2sb.c
@@ -57,7 +57,7 @@
  */
 static int p2sb_early_init(struct udevice *dev)
 {
-	struct p2sb_platdata *plat = dev_get_platdata(dev);
+	struct p2sb_platdata *plat = dev_get_plat(dev);
 	pci_dev_t pdev = plat->bdf;
 
 	/*
@@ -93,7 +93,7 @@
 int p2sb_ofdata_to_platdata(struct udevice *dev)
 {
 	struct p2sb_uc_priv *upriv = dev_get_uclass_priv(dev);
-	struct p2sb_platdata *plat = dev_get_platdata(dev);
+	struct p2sb_platdata *plat = dev_get_plat(dev);
 
 #if !CONFIG_IS_ENABLED(OF_PLATDATA)
 	int ret;
diff --git a/board/bluewater/gurnard/gurnard.c b/board/bluewater/gurnard/gurnard.c
index 993ba82..6c54910 100644
--- a/board/bluewater/gurnard/gurnard.c
+++ b/board/bluewater/gurnard/gurnard.c
@@ -348,7 +348,7 @@
 
 		uclass_find_first_device(UCLASS_VIDEO, &dev);
 		if (dev) {
-			struct atmel_lcd_platdata *plat = dev_get_platdata(dev);
+			struct atmel_lcd_platdata *plat = dev_get_plat(dev);
 
 			plat->timing_index = 1;
 		}
diff --git a/cmd/demo.c b/cmd/demo.c
index 90d3cff..78a55f7 100644
--- a/cmd/demo.c
+++ b/cmd/demo.c
@@ -74,7 +74,7 @@
 		printf("entry %d - instance %08x, ops %08x, plat %08x\n",
 		       i++, (uint)map_to_sysmem(dev),
 		       (uint)map_to_sysmem(dev->driver->ops),
-		       (uint)map_to_sysmem(dev_get_platdata(dev)));
+		       (uint)map_to_sysmem(dev_get_plat(dev)));
 	}
 
 	return cmd_process_error(cmdtp, ret);
diff --git a/cmd/host.c b/cmd/host.c
index ff119da..1d21f79 100644
--- a/cmd/host.c
+++ b/cmd/host.c
@@ -91,7 +91,7 @@
 		struct host_block_dev *host_dev;
 
 #ifdef CONFIG_BLK
-		host_dev = dev_get_platdata(blk_dev->bdev);
+		host_dev = dev_get_plat(blk_dev->bdev);
 #else
 		host_dev = blk_dev->priv;
 #endif
diff --git a/common/usb_storage.c b/common/usb_storage.c
index 7e6db49..5d6f704 100644
--- a/common/usb_storage.c
+++ b/common/usb_storage.c
@@ -207,7 +207,7 @@
 	 * is shared by all LUNs (block devices) attached to this mass storage
 	 * device.
 	 */
-	data = dev_get_platdata(udev->dev);
+	data = dev_get_plat(udev->dev);
 	if (!usb_storage_probe(udev, 0, data))
 		return 0;
 	max_lun = usb_get_max_lun(data);
diff --git a/doc/driver-model/design.rst b/doc/driver-model/design.rst
index 2cdea1c..d552f46 100644
--- a/doc/driver-model/design.rst
+++ b/doc/driver-model/design.rst
@@ -282,7 +282,7 @@
 
 	static int simple_hello(struct udevice *dev, int ch)
 	{
-		const struct dm_demo_pdata *pdata = dev_get_platdata(dev);
+		const struct dm_demo_pdata *pdata = dev_get_plat(dev);
 
 		printf("Hello from %08x: %s %d\n", map_to_sysmem(dev),
 		       pdata->colour, pdata->sides);
diff --git a/doc/driver-model/of-plat.rst b/doc/driver-model/of-plat.rst
index 8c2bfb4..b9976ac 100644
--- a/doc/driver-model/of-plat.rst
+++ b/doc/driver-model/of-plat.rst
@@ -171,7 +171,7 @@
 .. code-block:: c
 
     struct udevice *dev;
-    struct dtd_rockchip_rk3288_dw_mshc *plat = dev_get_platdata(dev);
+    struct dtd_rockchip_rk3288_dw_mshc *plat = dev_get_plat(dev);
 
 This avoids the code overhead of converting the device tree data to
 platform data in the driver. The ofdata_to_platdata() method should
@@ -258,7 +258,7 @@
     {
     #if !CONFIG_IS_ENABLED(OF_PLATDATA)
             /* Decode the device tree data */
-            struct mmc_platdata *plat = dev_get_platdata(dev);
+            struct mmc_platdata *plat = dev_get_plat(dev);
             const void *blob = gd->fdt_blob;
             int node = dev_of_offset(dev);
 
@@ -270,7 +270,7 @@
 
     static int mmc_probe(struct udevice *dev)
     {
-            struct mmc_platdata *plat = dev_get_platdata(dev);
+            struct mmc_platdata *plat = dev_get_plat(dev);
 
     #if CONFIG_IS_ENABLED(OF_PLATDATA)
             /* Decode the of-platdata from the C structures */
diff --git a/doc/driver-model/spi-howto.rst b/doc/driver-model/spi-howto.rst
index 6a1aace..b3b719f 100644
--- a/doc/driver-model/spi-howto.rst
+++ b/doc/driver-model/spi-howto.rst
@@ -357,7 +357,7 @@
 
 	static int exynos_spi_probe(struct udevice *bus)
 	{
-		struct exynos_spi_platdata *plat = dev_get_platdata(bus);
+		struct exynos_spi_platdata *plat = dev_get_plat(bus);
 		struct exynos_spi_priv *priv = dev_get_priv(bus);
 
 		priv->regs = plat->regs;
@@ -585,7 +585,7 @@
 	static void spi_cs_activate(struct udevice *dev)
 	{
 		struct udevice *bus = dev->parent;
-		struct exynos_spi_platdata *pdata = dev_get_platdata(bus);
+		struct exynos_spi_platdata *pdata = dev_get_plat(bus);
 		struct exynos_spi_priv *priv = dev_get_priv(bus);
 
 		/* If it's too soon to do another transaction, wait */
diff --git a/drivers/ata/fsl_sata.c b/drivers/ata/fsl_sata.c
index 99af1d4..9c41711 100644
--- a/drivers/ata/fsl_sata.c
+++ b/drivers/ata/fsl_sata.c
@@ -746,7 +746,7 @@
 static ulong sata_read(struct udevice *dev, lbaint_t blknr, lbaint_t blkcnt,
 		       void *buffer)
 {
-	struct fsl_ata_priv *priv = dev_get_platdata(dev);
+	struct fsl_ata_priv *priv = dev_get_plat(dev);
 	fsl_sata_t *sata = priv->fsl_sata;
 #endif
 	u32 rc;
@@ -768,7 +768,7 @@
 static ulong sata_write(struct udevice *dev, lbaint_t blknr, lbaint_t blkcnt,
 			const void *buffer)
 {
-	struct fsl_ata_priv *priv = dev_get_platdata(dev);
+	struct fsl_ata_priv *priv = dev_get_plat(dev);
 	fsl_sata_t *sata = priv->fsl_sata;
 #endif
 	u32 rc;
@@ -809,7 +809,7 @@
 static int scan_sata(struct udevice *dev)
 {
 	struct blk_desc *desc = dev_get_uclass_plat(dev);
-	struct fsl_ata_priv *priv = dev_get_platdata(dev);
+	struct fsl_ata_priv *priv = dev_get_plat(dev);
 	fsl_sata_t *sata = priv->fsl_sata;
 #endif
 
@@ -969,7 +969,7 @@
 			continue;
 		}
 
-		blk_priv = dev_get_platdata(blk);
+		blk_priv = dev_get_plat(blk);
 		blk_priv->fsl_sata = priv->fsl_sata;
 		/* Scan SATA port */
 		ret = scan_sata(blk);
diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c
index bb17392..b78e311 100644
--- a/drivers/ata/sata_mv.c
+++ b/drivers/ata/sata_mv.c
@@ -290,7 +290,7 @@
 /* Cut from sata_mv in linux kernel */
 static int mv_stop_edma_engine(struct udevice *dev, int port)
 {
-	struct mv_priv *priv = dev_get_platdata(dev);
+	struct mv_priv *priv = dev_get_plat(dev);
 	int i;
 
 	/* Disable eDMA. The disable bit auto clears. */
@@ -311,7 +311,7 @@
 
 static int mv_start_edma_engine(struct udevice *dev, int port)
 {
-	struct mv_priv *priv = dev_get_platdata(dev);
+	struct mv_priv *priv = dev_get_plat(dev);
 	u32 tmp;
 
 	/* Check preconditions */
@@ -363,7 +363,7 @@
 
 static int mv_reset_channel(struct udevice *dev, int port)
 {
-	struct mv_priv *priv = dev_get_platdata(dev);
+	struct mv_priv *priv = dev_get_plat(dev);
 
 	/* Make sure edma is stopped  */
 	mv_stop_edma_engine(dev, port);
@@ -378,7 +378,7 @@
 
 static void mv_reset_port(struct udevice *dev, int port)
 {
-	struct mv_priv *priv = dev_get_platdata(dev);
+	struct mv_priv *priv = dev_get_plat(dev);
 
 	mv_reset_channel(dev, port);
 
@@ -404,7 +404,7 @@
 
 static int probe_port(struct udevice *dev, int port)
 {
-	struct mv_priv *priv = dev_get_platdata(dev);
+	struct mv_priv *priv = dev_get_plat(dev);
 	int tries, tries2, set15 = 0;
 	u32 tmp;
 
@@ -467,7 +467,7 @@
 /* Get request queue in pointer */
 static int get_reqip(struct udevice *dev, int port)
 {
-	struct mv_priv *priv = dev_get_platdata(dev);
+	struct mv_priv *priv = dev_get_plat(dev);
 	u32 tmp;
 
 	tmp = in_le32(priv->regbase + EDMA_RQIPR) & EDMA_RQIPR_IPMASK;
@@ -478,7 +478,7 @@
 
 static void set_reqip(struct udevice *dev, int port, int reqin)
 {
-	struct mv_priv *priv = dev_get_platdata(dev);
+	struct mv_priv *priv = dev_get_plat(dev);
 	u32 tmp;
 
 	tmp = in_le32(priv->regbase + EDMA_RQIPR) & ~EDMA_RQIPR_IPMASK;
@@ -497,7 +497,7 @@
 /* Get response queue in pointer */
 static int get_rspip(struct udevice *dev, int port)
 {
-	struct mv_priv *priv = dev_get_platdata(dev);
+	struct mv_priv *priv = dev_get_plat(dev);
 	u32 tmp;
 
 	tmp = in_le32(priv->regbase + EDMA_RSIPR) & EDMA_RSIPR_IPMASK;
@@ -509,7 +509,7 @@
 /* Get response queue out pointer */
 static int get_rspop(struct udevice *dev, int port)
 {
-	struct mv_priv *priv = dev_get_platdata(dev);
+	struct mv_priv *priv = dev_get_plat(dev);
 	u32 tmp;
 
 	tmp = in_le32(priv->regbase + EDMA_RSOPR) & EDMA_RSOPR_OPMASK;
@@ -526,7 +526,7 @@
 /* Set response queue pointer */
 static void set_rspop(struct udevice *dev, int port, int reqin)
 {
-	struct mv_priv *priv = dev_get_platdata(dev);
+	struct mv_priv *priv = dev_get_plat(dev);
 	u32 tmp;
 
 	tmp = in_le32(priv->regbase + EDMA_RSOPR) & ~EDMA_RSOPR_OPMASK;
@@ -552,7 +552,7 @@
 static void process_responses(struct udevice *dev, int port)
 {
 #ifdef DEBUG
-	struct mv_priv *priv = dev_get_platdata(dev);
+	struct mv_priv *priv = dev_get_plat(dev);
 #endif
 	u32 tmp;
 	u32 outind = get_rspop(dev, port);
@@ -580,7 +580,7 @@
 			       struct sata_fis_h2d *cfis,
 			       u8 *buffer, u32 len, u32 iswrite)
 {
-	struct mv_priv *priv = dev_get_platdata(dev);
+	struct mv_priv *priv = dev_get_plat(dev);
 	struct crqb *req;
 	int slot;
 	u32 start;
@@ -772,7 +772,7 @@
 				      struct sata_fis_h2d *cfis, u8 *buffer,
 				      u32 len, u32 iswrite)
 {
-	struct mv_priv *priv = dev_get_platdata(dev);
+	struct mv_priv *priv = dev_get_plat(dev);
 	int i;
 	u16 *tp;
 
@@ -823,7 +823,7 @@
 
 static void mv_sata_xfer_mode(struct udevice *dev, int port, u16 *id)
 {
-	struct mv_priv *priv = dev_get_platdata(dev);
+	struct mv_priv *priv = dev_get_plat(dev);
 
 	priv->pio = id[ATA_ID_PIO_MODES];
 	priv->mwdma = id[ATA_ID_MWDMA_MODES];
@@ -834,7 +834,7 @@
 
 static void mv_sata_set_features(struct udevice *dev, int port)
 {
-	struct mv_priv *priv = dev_get_platdata(dev);
+	struct mv_priv *priv = dev_get_plat(dev);
 	struct sata_fis_h2d cfis;
 	u8 udma_cap;
 
@@ -886,7 +886,7 @@
 
 static int sata_mv_init_sata(struct udevice *dev, int port)
 {
-	struct mv_priv *priv = dev_get_platdata(dev);
+	struct mv_priv *priv = dev_get_plat(dev);
 
 	debug("Initialize sata dev: %d\n", port);
 
@@ -944,7 +944,7 @@
 static int sata_mv_scan_sata(struct udevice *dev, int port)
 {
 	struct blk_desc *desc = dev_get_uclass_plat(dev);
-	struct mv_priv *priv = dev_get_platdata(dev);
+	struct mv_priv *priv = dev_get_plat(dev);
 	unsigned char serial[ATA_ID_SERNO_LEN + 1];
 	unsigned char firmware[ATA_ID_FW_REV_LEN + 1];
 	unsigned char product[ATA_ID_PROD_LEN + 1];
@@ -1006,7 +1006,7 @@
 static ulong sata_mv_read(struct udevice *blk, lbaint_t blknr,
 			  lbaint_t blkcnt, void *buffer)
 {
-	struct mv_priv *priv = dev_get_platdata(blk);
+	struct mv_priv *priv = dev_get_plat(blk);
 
 	return ata_low_level_rw(blk, priv->dev_nr, blknr, blkcnt,
 				buffer, READ_CMD);
@@ -1015,7 +1015,7 @@
 static ulong sata_mv_write(struct udevice *blk, lbaint_t blknr,
 			   lbaint_t blkcnt, const void *buffer)
 {
-	struct mv_priv *priv = dev_get_platdata(blk);
+	struct mv_priv *priv = dev_get_plat(blk);
 
 	return ata_low_level_rw(blk, priv->dev_nr, blknr, blkcnt,
 				(void *)buffer, WRITE_CMD);
@@ -1055,7 +1055,7 @@
 			return ret;
 		}
 
-		priv = dev_get_platdata(blk);
+		priv = dev_get_plat(blk);
 		priv->dev_nr = i;
 
 		/* Init SATA port */
diff --git a/drivers/ata/sata_sil.c b/drivers/ata/sata_sil.c
index 2bc3d22..7e4e97d 100644
--- a/drivers/ata/sata_sil.c
+++ b/drivers/ata/sata_sil.c
@@ -492,7 +492,7 @@
 static ulong sata_read(struct udevice *dev, lbaint_t blknr, lbaint_t blkcnt,
 		       void *buffer)
 {
-	struct sil_sata_priv *priv = dev_get_platdata(dev);
+	struct sil_sata_priv *priv = dev_get_plat(dev);
 	int port_number = priv->port_num;
 	struct sil_sata *sata = priv->sil_sata_desc[port_number];
 #endif
@@ -517,7 +517,7 @@
 ulong sata_write(struct udevice *dev, lbaint_t blknr, lbaint_t blkcnt,
 		 const void *buffer)
 {
-	struct sil_sata_priv *priv = dev_get_platdata(dev);
+	struct sil_sata_priv *priv = dev_get_plat(dev);
 	int port_number = priv->port_num;
 	struct sil_sata *sata = priv->sil_sata_desc[port_number];
 #endif
@@ -542,7 +542,7 @@
 #else
 static int sil_init_sata(struct udevice *uc_dev, int dev)
 {
-	struct sil_sata_priv *priv = dev_get_platdata(uc_dev);
+	struct sil_sata_priv *priv = dev_get_plat(uc_dev);
 #endif
 	struct sil_sata *sata;
 	void *port;
@@ -709,7 +709,7 @@
 static int scan_sata(struct udevice *blk_dev, int dev)
 {
 	struct blk_desc *desc = dev_get_uclass_plat(blk_dev);
-	struct sil_sata_priv *priv = dev_get_platdata(blk_dev);
+	struct sil_sata_priv *priv = dev_get_plat(blk_dev);
 	struct sil_sata *sata = priv->sil_sata_desc[dev];
 #endif
 	unsigned char serial[ATA_ID_SERNO_LEN + 1];
diff --git a/drivers/block/sandbox.c b/drivers/block/sandbox.c
index 12d3200..34c26cd 100644
--- a/drivers/block/sandbox.c
+++ b/drivers/block/sandbox.c
@@ -34,7 +34,7 @@
 				     unsigned long start, lbaint_t blkcnt,
 				     void *buffer)
 {
-	struct host_block_dev *host_dev = dev_get_platdata(dev);
+	struct host_block_dev *host_dev = dev_get_plat(dev);
 	struct blk_desc *block_dev = dev_get_uclass_plat(dev);
 
 #else
@@ -65,7 +65,7 @@
 				      unsigned long start, lbaint_t blkcnt,
 				      const void *buffer)
 {
-	struct host_block_dev *host_dev = dev_get_platdata(dev);
+	struct host_block_dev *host_dev = dev_get_plat(dev);
 	struct blk_desc *block_dev = dev_get_uclass_plat(dev);
 #else
 static unsigned long host_block_write(struct blk_desc *block_dev,
@@ -133,7 +133,7 @@
 	if (ret)
 		goto err_file;
 
-	host_dev = dev_get_platdata(dev);
+	host_dev = dev_get_plat(dev);
 	host_dev->fd = fd;
 	host_dev->filename = fname;
 
diff --git a/drivers/cache/cache-v5l2.c b/drivers/cache/cache-v5l2.c
index 5f6fc1b..5b9ced9 100644
--- a/drivers/cache/cache-v5l2.c
+++ b/drivers/cache/cache-v5l2.c
@@ -73,7 +73,7 @@
 
 static int v5l2_enable(struct udevice *dev)
 {
-	struct v5l2_plat *plat = dev_get_platdata(dev);
+	struct v5l2_plat *plat = dev_get_plat(dev);
 	volatile struct l2cache *regs = plat->regs;
 
 	if (regs)
@@ -84,7 +84,7 @@
 
 static int v5l2_disable(struct udevice *dev)
 {
-	struct v5l2_plat *plat = dev_get_platdata(dev);
+	struct v5l2_plat *plat = dev_get_plat(dev);
 	volatile struct l2cache *regs = plat->regs;
 	u8 hart = gd->arch.boot_hart;
 	void __iomem *cctlcmd = (void __iomem *)CCTL_CMD_REG(regs, hart);
@@ -106,7 +106,7 @@
 
 static int v5l2_ofdata_to_platdata(struct udevice *dev)
 {
-	struct v5l2_plat *plat = dev_get_platdata(dev);
+	struct v5l2_plat *plat = dev_get_plat(dev);
 	struct l2cache *regs;
 
 	regs = (struct l2cache *)dev_read_addr(dev);
@@ -130,7 +130,7 @@
 
 static int v5l2_probe(struct udevice *dev)
 {
-	struct v5l2_plat *plat = dev_get_platdata(dev);
+	struct v5l2_plat *plat = dev_get_plat(dev);
 	struct l2cache *regs = plat->regs;
 	u32 ctl_val;
 
diff --git a/drivers/clk/altera/clk-agilex.c b/drivers/clk/altera/clk-agilex.c
index 619621f..c67155c 100644
--- a/drivers/clk/altera/clk-agilex.c
+++ b/drivers/clk/altera/clk-agilex.c
@@ -236,7 +236,7 @@
 static void clk_basic_init(struct udevice *dev,
 			   const struct cm_config * const cfg)
 {
-	struct socfpga_clk_platdata *plat = dev_get_platdata(dev);
+	struct socfpga_clk_platdata *plat = dev_get_plat(dev);
 	u32 vcocalib;
 
 	if (!cfg)
@@ -585,7 +585,7 @@
 
 static ulong socfpga_clk_get_rate(struct clk *clk)
 {
-	struct socfpga_clk_platdata *plat = dev_get_platdata(clk->dev);
+	struct socfpga_clk_platdata *plat = dev_get_plat(clk->dev);
 
 	switch (clk->id) {
 	case AGILEX_MPU_CLK:
@@ -630,7 +630,7 @@
 
 static int socfpga_clk_ofdata_to_platdata(struct udevice *dev)
 {
-	struct socfpga_clk_platdata *plat = dev_get_platdata(dev);
+	struct socfpga_clk_platdata *plat = dev_get_plat(dev);
 	fdt_addr_t addr;
 
 	addr = dev_read_addr(dev);
diff --git a/drivers/clk/altera/clk-arria10.c b/drivers/clk/altera/clk-arria10.c
index bb1b367..11f10c5 100644
--- a/drivers/clk/altera/clk-arria10.c
+++ b/drivers/clk/altera/clk-arria10.c
@@ -43,7 +43,7 @@
 
 static int socfpga_a10_clk_get_upstream(struct clk *clk, struct clk **upclk)
 {
-	struct socfpga_a10_clk_platdata *plat = dev_get_platdata(clk->dev);
+	struct socfpga_a10_clk_platdata *plat = dev_get_plat(clk->dev);
 	u32 reg, maxval;
 
 	if (plat->clks.count == 0)
@@ -84,7 +84,7 @@
 
 static int socfpga_a10_clk_endisable(struct clk *clk, bool enable)
 {
-	struct socfpga_a10_clk_platdata *plat = dev_get_platdata(clk->dev);
+	struct socfpga_a10_clk_platdata *plat = dev_get_plat(clk->dev);
 	struct clk *upclk = NULL;
 	int ret;
 
@@ -120,7 +120,7 @@
 
 static ulong socfpga_a10_clk_get_rate(struct clk *clk)
 {
-	struct socfpga_a10_clk_platdata *plat = dev_get_platdata(clk->dev);
+	struct socfpga_a10_clk_platdata *plat = dev_get_plat(clk->dev);
 	struct clk *upclk = NULL;
 	ulong rate = 0, reg, numer, denom;
 	int ret;
@@ -190,7 +190,7 @@
  */
 static void socfpga_a10_handoff_workaround(struct udevice *dev)
 {
-	struct socfpga_a10_clk_platdata *plat = dev_get_platdata(dev);
+	struct socfpga_a10_clk_platdata *plat = dev_get_plat(dev);
 	const void *fdt = gd->fdt_blob;
 	struct clk_bulk	*bulk = &plat->clks;
 	int i, ret, offset = dev_of_offset(dev);
@@ -274,7 +274,7 @@
 
 static int socfpga_a10_clk_probe(struct udevice *dev)
 {
-	struct socfpga_a10_clk_platdata *plat = dev_get_platdata(dev);
+	struct socfpga_a10_clk_platdata *plat = dev_get_plat(dev);
 	struct socfpga_a10_clk_platdata *pplat;
 	struct udevice *pdev;
 	const void *fdt = gd->fdt_blob;
@@ -291,7 +291,7 @@
 		if (!pdev)
 			return -ENODEV;
 
-		pplat = dev_get_platdata(pdev);
+		pplat = dev_get_plat(pdev);
 		if (!pplat)
 			return -EINVAL;
 
@@ -321,7 +321,7 @@
 
 static int socfpga_a10_ofdata_to_platdata(struct udevice *dev)
 {
-	struct socfpga_a10_clk_platdata *plat = dev_get_platdata(dev);
+	struct socfpga_a10_clk_platdata *plat = dev_get_plat(dev);
 	unsigned int divreg[3], gatereg[2];
 	int ret;
 
diff --git a/drivers/clk/at91/compat.c b/drivers/clk/at91/compat.c
index b56c01f..7137524 100644
--- a/drivers/clk/at91/compat.c
+++ b/drivers/clk/at91/compat.c
@@ -45,7 +45,7 @@
 
 static int at91_pmc_core_probe(struct udevice *dev)
 {
-	struct pmc_platdata *plat = dev_get_platdata(dev);
+	struct pmc_platdata *plat = dev_get_plat(dev);
 
 	dev = dev_get_parent(dev);
 
@@ -115,7 +115,7 @@
 int at91_clk_probe(struct udevice *dev)
 {
 	struct udevice *dev_periph_container, *dev_pmc;
-	struct pmc_platdata *plat = dev_get_platdata(dev);
+	struct pmc_platdata *plat = dev_get_plat(dev);
 
 	dev_periph_container = dev_get_parent(dev);
 	dev_pmc = dev_get_parent(dev_periph_container);
@@ -191,7 +191,7 @@
 /* Main osc clock specific code. */
 static int main_osc_clk_enable(struct clk *clk)
 {
-	struct pmc_platdata *plat = dev_get_platdata(clk->dev);
+	struct pmc_platdata *plat = dev_get_plat(clk->dev);
 	struct at91_pmc *pmc = plat->reg_base;
 
 	if (readl(&pmc->sr) & AT91_PMC_MOSCSELS)
@@ -232,7 +232,7 @@
 /* PLLA clock specific code. */
 static int plla_clk_enable(struct clk *clk)
 {
-	struct pmc_platdata *plat = dev_get_platdata(clk->dev);
+	struct pmc_platdata *plat = dev_get_plat(clk->dev);
 	struct at91_pmc *pmc = plat->reg_base;
 
 	if (readl(&pmc->sr) & AT91_PMC_LOCKA)
@@ -278,7 +278,7 @@
 
 static ulong at91_plladiv_clk_get_rate(struct clk *clk)
 {
-	struct pmc_platdata *plat = dev_get_platdata(clk->dev);
+	struct pmc_platdata *plat = dev_get_plat(clk->dev);
 	struct at91_pmc *pmc = plat->reg_base;
 	struct clk source;
 	ulong clk_rate;
@@ -297,7 +297,7 @@
 
 static ulong at91_plladiv_clk_set_rate(struct clk *clk, ulong rate)
 {
-	struct pmc_platdata *plat = dev_get_platdata(clk->dev);
+	struct pmc_platdata *plat = dev_get_plat(clk->dev);
 	struct at91_pmc *pmc = plat->reg_base;
 	struct clk source;
 	ulong parent_rate;
@@ -401,7 +401,7 @@
 
 static int system_clk_enable(struct clk *clk)
 {
-	struct pmc_platdata *plat = dev_get_platdata(clk->dev);
+	struct pmc_platdata *plat = dev_get_plat(clk->dev);
 	struct at91_pmc *pmc = plat->reg_base;
 	u32 mask;
 
@@ -483,7 +483,7 @@
 
 static int periph_clk_enable(struct clk *clk)
 {
-	struct pmc_platdata *plat = dev_get_platdata(clk->dev);
+	struct pmc_platdata *plat = dev_get_plat(clk->dev);
 	struct at91_pmc *pmc = plat->reg_base;
 	enum periph_clk_type clk_type;
 	void *addr;
@@ -552,7 +552,7 @@
 
 static int utmi_clk_enable(struct clk *clk)
 {
-	struct pmc_platdata *plat = dev_get_platdata(clk->dev);
+	struct pmc_platdata *plat = dev_get_plat(clk->dev);
 	struct at91_pmc *pmc = plat->reg_base;
 	struct clk clk_dev;
 	ulong clk_rate;
@@ -640,7 +640,7 @@
 
 static int utmi_clk_ofdata_to_platdata(struct udevice *dev)
 {
-	struct pmc_platdata *plat = dev_get_platdata(dev);
+	struct pmc_platdata *plat = dev_get_plat(dev);
 	struct udevice *syscon;
 
 	uclass_get_device_by_phandle(UCLASS_SYSCON, dev,
@@ -681,7 +681,7 @@
 
 static ulong sama5d4_h32mx_clk_get_rate(struct clk *clk)
 {
-	struct pmc_platdata *plat = dev_get_platdata(clk->dev);
+	struct pmc_platdata *plat = dev_get_plat(clk->dev);
 	struct at91_pmc *pmc = plat->reg_base;
 	ulong rate = gd->arch.mck_rate_hz;
 
@@ -754,7 +754,7 @@
 
 static ulong generic_clk_get_rate(struct clk *clk)
 {
-	struct pmc_platdata *plat = dev_get_platdata(clk->dev);
+	struct pmc_platdata *plat = dev_get_plat(clk->dev);
 	struct at91_pmc *pmc = plat->reg_base;
 	struct clk parent;
 	ulong clk_rate;
@@ -782,7 +782,7 @@
 
 static ulong generic_clk_set_rate(struct clk *clk, ulong rate)
 {
-	struct pmc_platdata *plat = dev_get_platdata(clk->dev);
+	struct pmc_platdata *plat = dev_get_plat(clk->dev);
 	struct at91_pmc *pmc = plat->reg_base;
 	struct generic_clk_priv *priv = dev_get_priv(clk->dev);
 	struct clk parent, best_parent;
@@ -895,7 +895,7 @@
 
 static ulong at91_usb_clk_get_rate(struct clk *clk)
 {
-	struct pmc_platdata *plat = dev_get_platdata(clk->dev);
+	struct pmc_platdata *plat = dev_get_plat(clk->dev);
 	struct at91_pmc *pmc = plat->reg_base;
 	struct clk source;
 	u32 tmp, usbdiv;
@@ -916,7 +916,7 @@
 
 static ulong at91_usb_clk_set_rate(struct clk *clk, ulong rate)
 {
-	struct pmc_platdata *plat = dev_get_platdata(clk->dev);
+	struct pmc_platdata *plat = dev_get_plat(clk->dev);
 	struct at91_pmc *pmc = plat->reg_base;
 	struct at91_usb_clk_priv *priv = dev_get_priv(clk->dev);
 	struct clk source, best_source;
diff --git a/drivers/clk/clk_boston.c b/drivers/clk/clk_boston.c
index 75e2e43..374fc9a 100644
--- a/drivers/clk/clk_boston.c
+++ b/drivers/clk/clk_boston.c
@@ -28,7 +28,7 @@
 
 static ulong clk_boston_get_rate(struct clk *clk)
 {
-	struct clk_boston *state = dev_get_platdata(clk->dev);
+	struct clk_boston *state = dev_get_plat(clk->dev);
 	uint32_t in_rate, mul, div;
 	uint mmcmdiv;
 	int err;
@@ -60,7 +60,7 @@
 
 static int clk_boston_ofdata_to_platdata(struct udevice *dev)
 {
-	struct clk_boston *state = dev_get_platdata(dev);
+	struct clk_boston *state = dev_get_plat(dev);
 	struct udevice *syscon;
 	int err;
 
diff --git a/drivers/clk/clk_fixed_factor.c b/drivers/clk/clk_fixed_factor.c
index 7a9d423..d68f79d 100644
--- a/drivers/clk/clk_fixed_factor.c
+++ b/drivers/clk/clk_fixed_factor.c
@@ -18,7 +18,7 @@
 };
 
 #define to_clk_fixed_factor(dev)	\
-	((struct clk_fixed_factor *)dev_get_platdata(dev))
+	((struct clk_fixed_factor *)dev_get_plat(dev))
 
 static ulong clk_fixed_factor_get_rate(struct clk *clk)
 {
diff --git a/drivers/clk/rockchip/clk_rk3188.c b/drivers/clk/rockchip/clk_rk3188.c
index f96aab9..4c4bd68 100644
--- a/drivers/clk/rockchip/clk_rk3188.c
+++ b/drivers/clk/rockchip/clk_rk3188.c
@@ -561,7 +561,7 @@
 
 #ifdef CONFIG_SPL_BUILD
 #if CONFIG_IS_ENABLED(OF_PLATDATA)
-	struct rk3188_clk_plat *plat = dev_get_platdata(dev);
+	struct rk3188_clk_plat *plat = dev_get_plat(dev);
 
 	priv->cru = map_sysmem(plat->dtd.reg[0], plat->dtd.reg[1]);
 #endif
diff --git a/drivers/clk/rockchip/clk_rk3288.c b/drivers/clk/rockchip/clk_rk3288.c
index 0263883..588cfcc 100644
--- a/drivers/clk/rockchip/clk_rk3288.c
+++ b/drivers/clk/rockchip/clk_rk3288.c
@@ -975,7 +975,7 @@
 		return PTR_ERR(priv->grf);
 #ifdef CONFIG_SPL_BUILD
 #if CONFIG_IS_ENABLED(OF_PLATDATA)
-	struct rk3288_clk_plat *plat = dev_get_platdata(dev);
+	struct rk3288_clk_plat *plat = dev_get_plat(dev);
 
 	priv->cru = map_sysmem(plat->dtd.reg[0], plat->dtd.reg[1]);
 #endif
diff --git a/drivers/clk/rockchip/clk_rk3368.c b/drivers/clk/rockchip/clk_rk3368.c
index d32762c..08c98e0 100644
--- a/drivers/clk/rockchip/clk_rk3368.c
+++ b/drivers/clk/rockchip/clk_rk3368.c
@@ -582,7 +582,7 @@
 {
 	struct rk3368_clk_priv __maybe_unused *priv = dev_get_priv(dev);
 #if CONFIG_IS_ENABLED(OF_PLATDATA)
-	struct rk3368_clk_plat *plat = dev_get_platdata(dev);
+	struct rk3368_clk_plat *plat = dev_get_plat(dev);
 
 	priv->cru = map_sysmem(plat->dtd.reg[0], plat->dtd.reg[1]);
 #endif
diff --git a/drivers/clk/rockchip/clk_rk3399.c b/drivers/clk/rockchip/clk_rk3399.c
index 515c855..2c0ff3b 100644
--- a/drivers/clk/rockchip/clk_rk3399.c
+++ b/drivers/clk/rockchip/clk_rk3399.c
@@ -1378,7 +1378,7 @@
 	bool init_clocks = false;
 
 #if CONFIG_IS_ENABLED(OF_PLATDATA)
-	struct rk3399_clk_plat *plat = dev_get_platdata(dev);
+	struct rk3399_clk_plat *plat = dev_get_plat(dev);
 
 	priv->cru = map_sysmem(plat->dtd.reg[0], plat->dtd.reg[1]);
 #endif
@@ -1599,7 +1599,7 @@
 #endif
 
 #if CONFIG_IS_ENABLED(OF_PLATDATA)
-	struct rk3399_pmuclk_plat *plat = dev_get_platdata(dev);
+	struct rk3399_pmuclk_plat *plat = dev_get_plat(dev);
 
 	priv->pmucru = map_sysmem(plat->dtd.reg[0], plat->dtd.reg[1]);
 #endif
diff --git a/drivers/core/device.c b/drivers/core/device.c
index 6933edc..332b1d0 100644
--- a/drivers/core/device.c
+++ b/drivers/core/device.c
@@ -517,7 +517,7 @@
 	return ret;
 }
 
-void *dev_get_platdata(const struct udevice *dev)
+void *dev_get_plat(const struct udevice *dev)
 {
 	if (!dev) {
 		dm_warn("%s: null device\n", __func__);
diff --git a/drivers/core/syscon-uclass.c b/drivers/core/syscon-uclass.c
index 823d073..5de4622 100644
--- a/drivers/core/syscon-uclass.c
+++ b/drivers/core/syscon-uclass.c
@@ -56,7 +56,7 @@
 	 * using OF_PLATDATA will need to ensure that this is true.
 	 */
 #if CONFIG_IS_ENABLED(OF_PLATDATA)
-	struct syscon_base_platdata *plat = dev_get_platdata(dev);
+	struct syscon_base_platdata *plat = dev_get_plat(dev);
 
 	return regmap_init_mem_platdata(dev, plat->reg, ARRAY_SIZE(plat->reg),
 					&priv->regmap);
diff --git a/drivers/cpu/at91_cpu.c b/drivers/cpu/at91_cpu.c
index ff1c406..bd81efd 100644
--- a/drivers/cpu/at91_cpu.c
+++ b/drivers/cpu/at91_cpu.c
@@ -27,7 +27,7 @@
 
 int at91_cpu_get_desc(const struct udevice *dev, char *buf, int size)
 {
-	struct at91_cpu_platdata *plat = dev_get_platdata(dev);
+	struct at91_cpu_platdata *plat = dev_get_plat(dev);
 
 	snprintf(buf, size, "%s\n"
 		 "Crystal frequency: %8lu MHz\n"
@@ -41,7 +41,7 @@
 
 static int at91_cpu_get_info(const struct udevice *dev, struct cpu_info *info)
 {
-	struct at91_cpu_platdata *plat = dev_get_platdata(dev);
+	struct at91_cpu_platdata *plat = dev_get_plat(dev);
 
 	info->cpu_freq = plat->cpufreq_mhz * 1000000;
 	info->features = BIT(CPU_FEAT_L1_CACHE);
@@ -75,7 +75,7 @@
 
 static int at91_cpu_probe(struct udevice *dev)
 {
-	struct at91_cpu_platdata *plat = dev_get_platdata(dev);
+	struct at91_cpu_platdata *plat = dev_get_plat(dev);
 	struct clk clk;
 	ulong rate;
 	int ret;
diff --git a/drivers/cpu/imx8_cpu.c b/drivers/cpu/imx8_cpu.c
index 1df43b8..c9f7449 100644
--- a/drivers/cpu/imx8_cpu.c
+++ b/drivers/cpu/imx8_cpu.c
@@ -55,7 +55,7 @@
 
 static void set_core_data(struct udevice *dev)
 {
-	struct cpu_imx_platdata *plat = dev_get_platdata(dev);
+	struct cpu_imx_platdata *plat = dev_get_plat(dev);
 
 	if (device_is_compatible(dev, "arm,cortex-a35")) {
 		plat->cpu_rsrc = SC_R_A35;
@@ -102,7 +102,7 @@
 
 int cpu_imx_get_desc(const struct udevice *dev, char *buf, int size)
 {
-	struct cpu_imx_platdata *plat = dev_get_platdata(dev);
+	struct cpu_imx_platdata *plat = dev_get_plat(dev);
 	int ret, temp;
 
 	if (size < 100)
@@ -128,7 +128,7 @@
 
 static int cpu_imx_get_info(const struct udevice *dev, struct cpu_info *info)
 {
-	struct cpu_imx_platdata *plat = dev_get_platdata(dev);
+	struct cpu_imx_platdata *plat = dev_get_plat(dev);
 
 	info->cpu_freq = plat->freq_mhz * 1000;
 	info->features = BIT(CPU_FEAT_L1_CACHE) | BIT(CPU_FEAT_MMU);
@@ -165,7 +165,7 @@
 
 static int cpu_imx_is_current(struct udevice *dev)
 {
-	struct cpu_imx_platdata *plat = dev_get_platdata(dev);
+	struct cpu_imx_platdata *plat = dev_get_plat(dev);
 
 	if (plat->mpidr == (read_mpidr() & 0xffff))
 		return 1;
@@ -190,7 +190,7 @@
 
 static ulong imx8_get_cpu_rate(struct udevice *dev)
 {
-	struct cpu_imx_platdata *plat = dev_get_platdata(dev);
+	struct cpu_imx_platdata *plat = dev_get_plat(dev);
 	ulong rate;
 	int ret;
 
@@ -206,7 +206,7 @@
 
 static int imx8_cpu_probe(struct udevice *dev)
 {
-	struct cpu_imx_platdata *plat = dev_get_platdata(dev);
+	struct cpu_imx_platdata *plat = dev_get_plat(dev);
 	u32 cpurev;
 
 	set_core_data(dev);
diff --git a/drivers/demo/demo-shape.c b/drivers/demo/demo-shape.c
index cc99f3e..b13a4ee 100644
--- a/drivers/demo/demo-shape.c
+++ b/drivers/demo/demo-shape.c
@@ -28,7 +28,7 @@
 /* Crazy little function to draw shapes on the console */
 static int shape_hello(struct udevice *dev, int ch)
 {
-	const struct dm_demo_pdata *pdata = dev_get_platdata(dev);
+	const struct dm_demo_pdata *pdata = dev_get_plat(dev);
 	struct shape_data *data = dev_get_priv(dev);
 	static const struct shape {
 		int start;
@@ -142,7 +142,7 @@
 
 static int shape_ofdata_to_platdata(struct udevice *dev)
 {
-	struct dm_demo_pdata *pdata = dev_get_platdata(dev);
+	struct dm_demo_pdata *pdata = dev_get_plat(dev);
 	int ret;
 
 	/* Parse the data that is common with all demo devices */
diff --git a/drivers/demo/demo-simple.c b/drivers/demo/demo-simple.c
index 950e286..39b370c 100644
--- a/drivers/demo/demo-simple.c
+++ b/drivers/demo/demo-simple.c
@@ -14,7 +14,7 @@
 
 static int simple_hello(struct udevice *dev, int ch)
 {
-	const struct dm_demo_pdata *pdata = dev_get_platdata(dev);
+	const struct dm_demo_pdata *pdata = dev_get_plat(dev);
 
 	printf("Hello from %08x: %s %d\n", (uint)map_to_sysmem(dev), pdata->colour,
 	       pdata->sides);
diff --git a/drivers/demo/demo-uclass.c b/drivers/demo/demo-uclass.c
index 6c36f03..a020ecb 100644
--- a/drivers/demo/demo-uclass.c
+++ b/drivers/demo/demo-uclass.c
@@ -65,7 +65,7 @@
 
 int demo_parse_dt(struct udevice *dev)
 {
-	struct dm_demo_pdata *pdata = dev_get_platdata(dev);
+	struct dm_demo_pdata *pdata = dev_get_plat(dev);
 	int dn = dev_of_offset(dev);
 
 	pdata->sides = fdtdec_get_int(gd->fdt_blob, dn, "sides", 0);
diff --git a/drivers/gpio/altera_pio.c b/drivers/gpio/altera_pio.c
index f4e18e1..0b1861a 100644
--- a/drivers/gpio/altera_pio.c
+++ b/drivers/gpio/altera_pio.c
@@ -27,7 +27,7 @@
 
 static int altera_pio_direction_input(struct udevice *dev, unsigned pin)
 {
-	struct altera_pio_platdata *plat = dev_get_platdata(dev);
+	struct altera_pio_platdata *plat = dev_get_plat(dev);
 	struct altera_pio_regs *const regs = plat->regs;
 
 	clrbits_le32(&regs->direction, 1 << pin);
@@ -38,7 +38,7 @@
 static int altera_pio_direction_output(struct udevice *dev, unsigned pin,
 				     int val)
 {
-	struct altera_pio_platdata *plat = dev_get_platdata(dev);
+	struct altera_pio_platdata *plat = dev_get_plat(dev);
 	struct altera_pio_regs *const regs = plat->regs;
 
 	if (val)
@@ -53,7 +53,7 @@
 
 static int altera_pio_get_value(struct udevice *dev, unsigned pin)
 {
-	struct altera_pio_platdata *plat = dev_get_platdata(dev);
+	struct altera_pio_platdata *plat = dev_get_plat(dev);
 	struct altera_pio_regs *const regs = plat->regs;
 
 	return !!(readl(&regs->data) & (1 << pin));
@@ -62,7 +62,7 @@
 
 static int altera_pio_set_value(struct udevice *dev, unsigned pin, int val)
 {
-	struct altera_pio_platdata *plat = dev_get_platdata(dev);
+	struct altera_pio_platdata *plat = dev_get_plat(dev);
 	struct altera_pio_regs *const regs = plat->regs;
 
 	if (val)
@@ -76,7 +76,7 @@
 static int altera_pio_probe(struct udevice *dev)
 {
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
-	struct altera_pio_platdata *plat = dev_get_platdata(dev);
+	struct altera_pio_platdata *plat = dev_get_plat(dev);
 
 	uc_priv->gpio_count = plat->gpio_count;
 	uc_priv->bank_name = plat->bank_name;
@@ -86,7 +86,7 @@
 
 static int altera_pio_ofdata_to_platdata(struct udevice *dev)
 {
-	struct altera_pio_platdata *plat = dev_get_platdata(dev);
+	struct altera_pio_platdata *plat = dev_get_plat(dev);
 
 	plat->regs = map_physmem(dev_read_addr(dev),
 				 sizeof(struct altera_pio_regs),
diff --git a/drivers/gpio/at91_gpio.c b/drivers/gpio/at91_gpio.c
index 4b25af7..7b604e4 100644
--- a/drivers/gpio/at91_gpio.c
+++ b/drivers/gpio/at91_gpio.c
@@ -590,7 +590,7 @@
 static int at91_gpio_probe(struct udevice *dev)
 {
 	struct at91_port_priv *port = dev_get_priv(dev);
-	struct at91_port_platdata *plat = dev_get_platdata(dev);
+	struct at91_port_platdata *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 	struct clk clk;
 	int ret;
diff --git a/drivers/gpio/atmel_pio4.c b/drivers/gpio/atmel_pio4.c
index 7a221b4..e25115f 100644
--- a/drivers/gpio/atmel_pio4.c
+++ b/drivers/gpio/atmel_pio4.c
@@ -183,7 +183,7 @@
 static struct atmel_pio4_port *atmel_pio4_bank_base(struct udevice *dev,
 						    u32 bank)
 {
-	struct atmel_pio4_platdata *plat = dev_get_platdata(dev);
+	struct atmel_pio4_platdata *plat = dev_get_plat(dev);
 	struct atmel_pio4_port *port_base =
 			(struct atmel_pio4_port *)((u32)plat->reg_base +
 			ATMEL_PIO_BANK_OFFSET * bank);
@@ -281,7 +281,7 @@
 
 static int atmel_pio4_probe(struct udevice *dev)
 {
-	struct atmel_pio4_platdata *plat = dev_get_platdata(dev);
+	struct atmel_pio4_platdata *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 	struct atmel_pioctrl_data *pioctrl_data;
 	struct clk clk;
diff --git a/drivers/gpio/bcm2835_gpio.c b/drivers/gpio/bcm2835_gpio.c
index e80830c..7c3f24e 100644
--- a/drivers/gpio/bcm2835_gpio.c
+++ b/drivers/gpio/bcm2835_gpio.c
@@ -102,7 +102,7 @@
 static int bcm2835_gpio_probe(struct udevice *dev)
 {
 	struct bcm2835_gpios *gpios = dev_get_priv(dev);
-	struct bcm2835_gpio_platdata *plat = dev_get_platdata(dev);
+	struct bcm2835_gpio_platdata *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 
 	uc_priv->bank_name = "GPIO";
@@ -118,7 +118,7 @@
 #if CONFIG_IS_ENABLED(OF_CONTROL)
 static int bcm2835_gpio_ofdata_to_platdata(struct udevice *dev)
 {
-	struct bcm2835_gpio_platdata *plat = dev_get_platdata(dev);
+	struct bcm2835_gpio_platdata *plat = dev_get_plat(dev);
 	fdt_addr_t addr;
 
 	addr = dev_read_addr(dev);
diff --git a/drivers/gpio/da8xx_gpio.c b/drivers/gpio/da8xx_gpio.c
index c8b12ac..ff61a4c 100644
--- a/drivers/gpio/da8xx_gpio.c
+++ b/drivers/gpio/da8xx_gpio.c
@@ -522,7 +522,7 @@
 static int davinci_gpio_probe(struct udevice *dev)
 {
 	struct davinci_gpio_bank *bank = dev_get_priv(dev);
-	struct davinci_gpio_platdata *plat = dev_get_platdata(dev);
+	struct davinci_gpio_platdata *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 	const void *fdt = gd->fdt_blob;
 	int node = dev_of_offset(dev);
@@ -542,7 +542,7 @@
 
 static int davinci_gpio_ofdata_to_platdata(struct udevice *dev)
 {
-	struct davinci_gpio_platdata *plat = dev_get_platdata(dev);
+	struct davinci_gpio_platdata *plat = dev_get_plat(dev);
 	fdt_addr_t addr;
 
 	addr = dev_read_addr(dev);
diff --git a/drivers/gpio/dwapb_gpio.c b/drivers/gpio/dwapb_gpio.c
index 6639e2e..42158bd 100644
--- a/drivers/gpio/dwapb_gpio.c
+++ b/drivers/gpio/dwapb_gpio.c
@@ -45,7 +45,7 @@
 
 static int dwapb_gpio_direction_input(struct udevice *dev, unsigned pin)
 {
-	struct gpio_dwapb_platdata *plat = dev_get_platdata(dev);
+	struct gpio_dwapb_platdata *plat = dev_get_plat(dev);
 
 	clrbits_le32(plat->base + GPIO_SWPORT_DDR(plat->bank), 1 << pin);
 	return 0;
@@ -54,7 +54,7 @@
 static int dwapb_gpio_direction_output(struct udevice *dev, unsigned pin,
 				     int val)
 {
-	struct gpio_dwapb_platdata *plat = dev_get_platdata(dev);
+	struct gpio_dwapb_platdata *plat = dev_get_plat(dev);
 
 	setbits_le32(plat->base + GPIO_SWPORT_DDR(plat->bank), 1 << pin);
 
@@ -68,7 +68,7 @@
 
 static int dwapb_gpio_set_value(struct udevice *dev, unsigned pin, int val)
 {
-	struct gpio_dwapb_platdata *plat = dev_get_platdata(dev);
+	struct gpio_dwapb_platdata *plat = dev_get_plat(dev);
 
 	if (val)
 		setbits_le32(plat->base + GPIO_SWPORT_DR(plat->bank), 1 << pin);
@@ -80,7 +80,7 @@
 
 static int dwapb_gpio_get_function(struct udevice *dev, unsigned offset)
 {
-	struct gpio_dwapb_platdata *plat = dev_get_platdata(dev);
+	struct gpio_dwapb_platdata *plat = dev_get_plat(dev);
 	u32 gpio;
 
 	gpio = readl(plat->base + GPIO_SWPORT_DDR(plat->bank));
@@ -93,7 +93,7 @@
 
 static int dwapb_gpio_get_value(struct udevice *dev, unsigned pin)
 {
-	struct gpio_dwapb_platdata *plat = dev_get_platdata(dev);
+	struct gpio_dwapb_platdata *plat = dev_get_plat(dev);
 	u32 value;
 
 	if (dwapb_gpio_get_function(dev, pin) == GPIOF_OUTPUT)
@@ -156,7 +156,7 @@
 
 static int gpio_dwapb_bind(struct udevice *dev)
 {
-	struct gpio_dwapb_platdata *plat = dev_get_platdata(dev);
+	struct gpio_dwapb_platdata *plat = dev_get_plat(dev);
 	struct udevice *subdev;
 	fdt_addr_t base;
 	int ret, bank = 0;
@@ -215,7 +215,7 @@
 
 static int gpio_dwapb_remove(struct udevice *dev)
 {
-	struct gpio_dwapb_platdata *plat = dev_get_platdata(dev);
+	struct gpio_dwapb_platdata *plat = dev_get_plat(dev);
 	struct gpio_dwapb_priv *priv = dev_get_priv(dev);
 
 	if (!plat && priv)
diff --git a/drivers/gpio/gpio-uclass.c b/drivers/gpio/gpio-uclass.c
index fdb3a45..4eedd4f 100644
--- a/drivers/gpio/gpio-uclass.c
+++ b/drivers/gpio/gpio-uclass.c
@@ -241,7 +241,7 @@
 
 static int gpio_hog_ofdata_to_platdata(struct udevice *dev)
 {
-	struct gpio_hog_data *plat = dev_get_platdata(dev);
+	struct gpio_hog_data *plat = dev_get_plat(dev);
 	const char *nodename;
 	int ret;
 
@@ -272,7 +272,7 @@
 
 static int gpio_hog_probe(struct udevice *dev)
 {
-	struct gpio_hog_data *plat = dev_get_platdata(dev);
+	struct gpio_hog_data *plat = dev_get_plat(dev);
 	struct gpio_hog_priv *priv = dev_get_priv(dev);
 	int ret;
 
diff --git a/drivers/gpio/hi6220_gpio.c b/drivers/gpio/hi6220_gpio.c
index c49dc78..02a3782 100644
--- a/drivers/gpio/hi6220_gpio.c
+++ b/drivers/gpio/hi6220_gpio.c
@@ -66,7 +66,7 @@
 static int hi6220_gpio_probe(struct udevice *dev)
 {
 	struct gpio_bank *bank = dev_get_priv(dev);
-	struct hikey_gpio_platdata *plat = dev_get_platdata(dev);
+	struct hikey_gpio_platdata *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev->uclass_priv;
 	char name[18], *str;
 
diff --git a/drivers/gpio/imx_rgpio2p.c b/drivers/gpio/imx_rgpio2p.c
index 80e934e..70ced75 100644
--- a/drivers/gpio/imx_rgpio2p.c
+++ b/drivers/gpio/imx_rgpio2p.c
@@ -132,7 +132,7 @@
 static int imx_rgpio2p_probe(struct udevice *dev)
 {
 	struct imx_rgpio2p_data *bank = dev_get_priv(dev);
-	struct imx_rgpio2p_plat *plat = dev_get_platdata(dev);
+	struct imx_rgpio2p_plat *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 	int banknum;
 	char name[18], *str;
diff --git a/drivers/gpio/intel_broadwell_gpio.c b/drivers/gpio/intel_broadwell_gpio.c
index b05233f..2b9e1a2 100644
--- a/drivers/gpio/intel_broadwell_gpio.c
+++ b/drivers/gpio/intel_broadwell_gpio.c
@@ -117,7 +117,7 @@
 
 static int broadwell_gpio_probe(struct udevice *dev)
 {
-	struct broadwell_bank_platdata *plat = dev_get_platdata(dev);
+	struct broadwell_bank_platdata *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 	struct broadwell_bank_priv *priv = dev_get_priv(dev);
 	struct udevice *pinctrl;
@@ -141,7 +141,7 @@
 
 static int broadwell_gpio_ofdata_to_platdata(struct udevice *dev)
 {
-	struct broadwell_bank_platdata *plat = dev_get_platdata(dev);
+	struct broadwell_bank_platdata *plat = dev_get_plat(dev);
 	u32 gpiobase;
 	int bank;
 	int ret;
diff --git a/drivers/gpio/intel_ich6_gpio.c b/drivers/gpio/intel_ich6_gpio.c
index 3fdc981..cfb2dda 100644
--- a/drivers/gpio/intel_ich6_gpio.c
+++ b/drivers/gpio/intel_ich6_gpio.c
@@ -95,7 +95,7 @@
 
 static int gpio_ich6_ofdata_to_platdata(struct udevice *dev)
 {
-	struct ich6_bank_platdata *plat = dev_get_platdata(dev);
+	struct ich6_bank_platdata *plat = dev_get_plat(dev);
 	u32 gpiobase;
 	int offset;
 	int ret;
@@ -119,7 +119,7 @@
 
 static int ich6_gpio_probe(struct udevice *dev)
 {
-	struct ich6_bank_platdata *plat = dev_get_platdata(dev);
+	struct ich6_bank_platdata *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 	struct ich6_bank_priv *bank = dev_get_priv(dev);
 	const void *prop;
diff --git a/drivers/gpio/iproc_gpio.c b/drivers/gpio/iproc_gpio.c
index 73f74ed..3cf1663 100644
--- a/drivers/gpio/iproc_gpio.c
+++ b/drivers/gpio/iproc_gpio.c
@@ -127,7 +127,7 @@
  */
 static int iproc_get_gpio_pctrl_mapping(struct udevice *dev)
 {
-	struct iproc_gpio_platdata *plat = dev_get_platdata(dev);
+	struct iproc_gpio_platdata *plat = dev_get_plat(dev);
 	struct iproc_gpio_pctrl_map *range = NULL;
 	struct ofnode_phandle_args args;
 	int index = 0, ret;
@@ -153,7 +153,7 @@
 
 static int iproc_gpio_request(struct udevice *dev, u32 gpio, const char *label)
 {
-	struct iproc_gpio_platdata *plat = dev_get_platdata(dev);
+	struct iproc_gpio_platdata *plat = dev_get_plat(dev);
 	u32 pctrl;
 
 	/* nothing to do if there is no corresponding pinctrl device */
@@ -167,7 +167,7 @@
 
 static int iproc_gpio_direction_input(struct udevice *dev, u32 gpio)
 {
-	struct iproc_gpio_platdata *plat = dev_get_platdata(dev);
+	struct iproc_gpio_platdata *plat = dev_get_plat(dev);
 
 	iproc_gpio_set_bit(plat, OUT_EN_OFFSET, gpio, false);
 	dev_dbg(dev, "gpio:%u set input\n", gpio);
@@ -177,7 +177,7 @@
 
 static int iproc_gpio_direction_output(struct udevice *dev, u32 gpio, int value)
 {
-	struct iproc_gpio_platdata *plat = dev_get_platdata(dev);
+	struct iproc_gpio_platdata *plat = dev_get_plat(dev);
 
 	iproc_gpio_set_bit(plat, OUT_EN_OFFSET, gpio, true);
 	iproc_gpio_set_bit(plat, DATA_OUT_OFFSET, gpio, value);
@@ -188,7 +188,7 @@
 
 static int iproc_gpio_get_value(struct udevice *dev, u32 gpio)
 {
-	struct iproc_gpio_platdata *plat = dev_get_platdata(dev);
+	struct iproc_gpio_platdata *plat = dev_get_plat(dev);
 	int value;
 
 	value = iproc_gpio_get_bit(plat, DATA_IN_OFFSET, gpio);
@@ -199,7 +199,7 @@
 
 static int iproc_gpio_set_value(struct udevice *dev, u32 gpio, int value)
 {
-	struct iproc_gpio_platdata *plat = dev_get_platdata(dev);
+	struct iproc_gpio_platdata *plat = dev_get_plat(dev);
 
 	if (iproc_gpio_get_bit(plat, OUT_EN_OFFSET, gpio))
 		iproc_gpio_set_bit(plat, DATA_OUT_OFFSET, gpio, value);
@@ -210,7 +210,7 @@
 
 static int iproc_gpio_get_function(struct udevice *dev, u32 gpio)
 {
-	struct iproc_gpio_platdata *plat = dev_get_platdata(dev);
+	struct iproc_gpio_platdata *plat = dev_get_plat(dev);
 
 	if (iproc_gpio_get_bit(plat, OUT_EN_OFFSET, gpio))
 		return GPIOF_OUTPUT;
@@ -220,7 +220,7 @@
 
 static int iproc_gpio_ofdata_to_platdata(struct udevice *dev)
 {
-	struct iproc_gpio_platdata *plat = dev_get_platdata(dev);
+	struct iproc_gpio_platdata *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 	int ret;
 	char name[10];
diff --git a/drivers/gpio/mpc83xx_spisel_boot.c b/drivers/gpio/mpc83xx_spisel_boot.c
index dae94b5..245b43f 100644
--- a/drivers/gpio/mpc83xx_spisel_boot.c
+++ b/drivers/gpio/mpc83xx_spisel_boot.c
@@ -63,7 +63,7 @@
 #if CONFIG_IS_ENABLED(OF_CONTROL)
 static int mpc83xx_spisel_boot_ofdata_to_platdata(struct udevice *dev)
 {
-	struct mpc8xxx_gpio_plat *plat = dev_get_platdata(dev);
+	struct mpc8xxx_gpio_plat *plat = dev_get_plat(dev);
 	fdt_addr_t addr;
 	u32 reg[2];
 
@@ -81,7 +81,7 @@
 static int mpc83xx_spisel_boot_platdata_to_priv(struct udevice *dev)
 {
 	struct mpc83xx_spisel_boot *priv = dev_get_priv(dev);
-	struct mpc8xxx_gpio_plat *plat = dev_get_platdata(dev);
+	struct mpc8xxx_gpio_plat *plat = dev_get_plat(dev);
 	unsigned long size = plat->size;
 	ulong driver_data = dev_get_driver_data(dev);
 
diff --git a/drivers/gpio/mpc8xxx_gpio.c b/drivers/gpio/mpc8xxx_gpio.c
index 6b64fc0..0933b90 100644
--- a/drivers/gpio/mpc8xxx_gpio.c
+++ b/drivers/gpio/mpc8xxx_gpio.c
@@ -185,7 +185,7 @@
 #if CONFIG_IS_ENABLED(OF_CONTROL)
 static int mpc8xxx_gpio_ofdata_to_platdata(struct udevice *dev)
 {
-	struct mpc8xxx_gpio_plat *plat = dev_get_platdata(dev);
+	struct mpc8xxx_gpio_plat *plat = dev_get_plat(dev);
 	struct mpc8xxx_gpio_data *data = dev_get_priv(dev);
 	fdt_addr_t addr;
 	u32 i;
@@ -222,7 +222,7 @@
 static int mpc8xxx_gpio_platdata_to_priv(struct udevice *dev)
 {
 	struct mpc8xxx_gpio_data *priv = dev_get_priv(dev);
-	struct mpc8xxx_gpio_plat *plat = dev_get_platdata(dev);
+	struct mpc8xxx_gpio_plat *plat = dev_get_plat(dev);
 	unsigned long size = plat->size;
 	ulong driver_data = dev_get_driver_data(dev);
 
diff --git a/drivers/gpio/mt7621_gpio.c b/drivers/gpio/mt7621_gpio.c
index 3a06d17..e48ddb5 100644
--- a/drivers/gpio/mt7621_gpio.c
+++ b/drivers/gpio/mt7621_gpio.c
@@ -51,7 +51,7 @@
 
 static int mediatek_gpio_get_value(struct udevice *dev, unsigned int offset)
 {
-	struct mediatek_gpio_platdata *plat = dev_get_platdata(dev);
+	struct mediatek_gpio_platdata *plat = dev_get_plat(dev);
 
 	return !!(ioread32(mediatek_gpio_membase +
 			   reg_offs(plat, GPIO_REG_DATA)) & BIT(offset));
@@ -60,7 +60,7 @@
 static int mediatek_gpio_set_value(struct udevice *dev, unsigned int offset,
 				   int value)
 {
-	struct mediatek_gpio_platdata *plat = dev_get_platdata(dev);
+	struct mediatek_gpio_platdata *plat = dev_get_plat(dev);
 
 	iowrite32(BIT(offset), mediatek_gpio_membase +
 		  reg_offs(plat, value ? GPIO_REG_DSET : GPIO_REG_DCLR));
@@ -70,7 +70,7 @@
 
 static int mediatek_gpio_direction_input(struct udevice *dev, unsigned int offset)
 {
-	struct mediatek_gpio_platdata *plat = dev_get_platdata(dev);
+	struct mediatek_gpio_platdata *plat = dev_get_plat(dev);
 
 	clrbits_le32(mediatek_gpio_membase + reg_offs(plat, GPIO_REG_CTRL),
 		     BIT(offset));
@@ -81,7 +81,7 @@
 static int mediatek_gpio_direction_output(struct udevice *dev, unsigned int offset,
 					  int value)
 {
-	struct mediatek_gpio_platdata *plat = dev_get_platdata(dev);
+	struct mediatek_gpio_platdata *plat = dev_get_plat(dev);
 
 	setbits_le32(mediatek_gpio_membase + reg_offs(plat, GPIO_REG_CTRL),
 		     BIT(offset));
@@ -92,7 +92,7 @@
 
 static int mediatek_gpio_get_function(struct udevice *dev, unsigned int offset)
 {
-	struct mediatek_gpio_platdata *plat = dev_get_platdata(dev);
+	struct mediatek_gpio_platdata *plat = dev_get_plat(dev);
 	u32 t;
 
 	t = ioread32(mediatek_gpio_membase + reg_offs(plat, GPIO_REG_CTRL));
@@ -112,7 +112,7 @@
 
 static int gpio_mediatek_probe(struct udevice *dev)
 {
-	struct mediatek_gpio_platdata *plat = dev_get_platdata(dev);
+	struct mediatek_gpio_platdata *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 
 	/* Tell the uclass how many GPIOs we have */
diff --git a/drivers/gpio/mxc_gpio.c b/drivers/gpio/mxc_gpio.c
index 55fadad..409793d 100644
--- a/drivers/gpio/mxc_gpio.c
+++ b/drivers/gpio/mxc_gpio.c
@@ -281,7 +281,7 @@
 static int mxc_gpio_probe(struct udevice *dev)
 {
 	struct mxc_bank_info *bank = dev_get_priv(dev);
-	struct mxc_gpio_plat *plat = dev_get_platdata(dev);
+	struct mxc_gpio_plat *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 	int banknum;
 	char name[18], *str;
@@ -309,7 +309,7 @@
 
 static int mxc_gpio_ofdata_to_platdata(struct udevice *dev)
 {
-	struct mxc_gpio_plat *plat = dev_get_platdata(dev);
+	struct mxc_gpio_plat *plat = dev_get_plat(dev);
 	if (!CONFIG_IS_ENABLED(OF_PLATDATA)) {
 		fdt_addr_t addr;
 		addr = dev_read_addr(dev);
diff --git a/drivers/gpio/mxs_gpio.c b/drivers/gpio/mxs_gpio.c
index 581d161..7ef34c6 100644
--- a/drivers/gpio/mxs_gpio.c
+++ b/drivers/gpio/mxs_gpio.c
@@ -235,7 +235,7 @@
 
 static int mxs_gpio_probe(struct udevice *dev)
 {
-	struct mxs_gpio_platdata *plat = dev_get_platdata(dev);
+	struct mxs_gpio_platdata *plat = dev_get_plat(dev);
 	struct mxs_gpio_priv *priv = dev_get_priv(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 	char name[16], *str;
diff --git a/drivers/gpio/nx_gpio.c b/drivers/gpio/nx_gpio.c
index f0bbb9e..d69a22a 100644
--- a/drivers/gpio/nx_gpio.c
+++ b/drivers/gpio/nx_gpio.c
@@ -44,7 +44,7 @@
 
 static int nx_alive_gpio_is_check(struct udevice *dev)
 {
-	struct nx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct nx_gpio_platdata *plat = dev_get_plat(dev);
 	const char *bank_name = plat->bank_name;
 
 	if (!strcmp(bank_name, "gpio_alv"))
@@ -55,7 +55,7 @@
 
 static int nx_alive_gpio_direction_input(struct udevice *dev, unsigned int pin)
 {
-	struct nx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct nx_gpio_platdata *plat = dev_get_plat(dev);
 	struct nx_alive_gpio_regs *const regs = plat->regs;
 
 	setbits_le32(&regs->outputenb_reset, 1 << pin);
@@ -66,7 +66,7 @@
 static int nx_alive_gpio_direction_output(struct udevice *dev, unsigned int pin,
 					  int val)
 {
-	struct nx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct nx_gpio_platdata *plat = dev_get_plat(dev);
 	struct nx_alive_gpio_regs *const regs = plat->regs;
 
 	if (val)
@@ -81,7 +81,7 @@
 
 static int nx_alive_gpio_get_value(struct udevice *dev, unsigned int pin)
 {
-	struct nx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct nx_gpio_platdata *plat = dev_get_plat(dev);
 	struct nx_alive_gpio_regs *const regs = plat->regs;
 	unsigned int mask = 1UL << pin;
 	unsigned int value;
@@ -94,7 +94,7 @@
 static int nx_alive_gpio_set_value(struct udevice *dev, unsigned int pin,
 				   int val)
 {
-	struct nx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct nx_gpio_platdata *plat = dev_get_plat(dev);
 	struct nx_alive_gpio_regs *const regs = plat->regs;
 
 	if (val)
@@ -107,7 +107,7 @@
 
 static int nx_alive_gpio_get_function(struct udevice *dev, unsigned int pin)
 {
-	struct nx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct nx_gpio_platdata *plat = dev_get_plat(dev);
 	struct nx_alive_gpio_regs *const regs = plat->regs;
 	unsigned int mask = (1UL << pin);
 	unsigned int output;
@@ -122,7 +122,7 @@
 
 static int nx_gpio_direction_input(struct udevice *dev, unsigned int pin)
 {
-	struct nx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct nx_gpio_platdata *plat = dev_get_plat(dev);
 	struct nx_gpio_regs *const regs = plat->regs;
 
 	if (nx_alive_gpio_is_check(dev))
@@ -136,7 +136,7 @@
 static int nx_gpio_direction_output(struct udevice *dev, unsigned int pin,
 				    int val)
 {
-	struct nx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct nx_gpio_platdata *plat = dev_get_plat(dev);
 	struct nx_gpio_regs *const regs = plat->regs;
 
 	if (nx_alive_gpio_is_check(dev))
@@ -154,7 +154,7 @@
 
 static int nx_gpio_get_value(struct udevice *dev, unsigned int pin)
 {
-	struct nx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct nx_gpio_platdata *plat = dev_get_plat(dev);
 	struct nx_gpio_regs *const regs = plat->regs;
 	unsigned int mask = 1UL << pin;
 	unsigned int value;
@@ -169,7 +169,7 @@
 
 static int nx_gpio_set_value(struct udevice *dev, unsigned int pin, int val)
 {
-	struct nx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct nx_gpio_platdata *plat = dev_get_plat(dev);
 	struct nx_gpio_regs *const regs = plat->regs;
 
 	if (nx_alive_gpio_is_check(dev))
@@ -185,7 +185,7 @@
 
 static int nx_gpio_get_function(struct udevice *dev, unsigned int pin)
 {
-	struct nx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct nx_gpio_platdata *plat = dev_get_plat(dev);
 	struct nx_gpio_regs *const regs = plat->regs;
 	unsigned int mask = (1UL << pin);
 	unsigned int output;
@@ -204,7 +204,7 @@
 static int nx_gpio_probe(struct udevice *dev)
 {
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
-	struct nx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct nx_gpio_platdata *plat = dev_get_plat(dev);
 
 	uc_priv->gpio_count = plat->gpio_count;
 	uc_priv->bank_name = plat->bank_name;
@@ -214,7 +214,7 @@
 
 static int nx_gpio_ofdata_to_platdata(struct udevice *dev)
 {
-	struct nx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct nx_gpio_platdata *plat = dev_get_plat(dev);
 
 	plat->regs = map_physmem(devfdt_get_addr(dev),
 				 sizeof(struct nx_gpio_regs),
diff --git a/drivers/gpio/omap_gpio.c b/drivers/gpio/omap_gpio.c
index 7be1beb..6581dca 100644
--- a/drivers/gpio/omap_gpio.c
+++ b/drivers/gpio/omap_gpio.c
@@ -285,7 +285,7 @@
 static int omap_gpio_probe(struct udevice *dev)
 {
 	struct gpio_bank *bank = dev_get_priv(dev);
-	struct omap_gpio_platdata *plat = dev_get_platdata(dev);
+	struct omap_gpio_platdata *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 	char name[18], *str;
 
@@ -302,7 +302,7 @@
 #if !CONFIG_IS_ENABLED(OF_CONTROL)
 static int omap_gpio_bind(struct udevice *dev)
 {
-	struct omap_gpio_platdata *plat = dev_get_platdata(dev);
+	struct omap_gpio_platdata *plat = dev_get_plat(dev);
 	fdt_addr_t base_addr;
 
 	if (plat)
@@ -344,7 +344,7 @@
 
 static int omap_gpio_ofdata_to_platdata(struct udevice *dev)
 {
-	struct omap_gpio_platdata *plat = dev_get_platdata(dev);
+	struct omap_gpio_platdata *plat = dev_get_plat(dev);
 	fdt_addr_t addr;
 
 	addr = dev_read_addr(dev);
diff --git a/drivers/gpio/pca953x_gpio.c b/drivers/gpio/pca953x_gpio.c
index 239c0f7..dc8911a 100644
--- a/drivers/gpio/pca953x_gpio.c
+++ b/drivers/gpio/pca953x_gpio.c
@@ -76,7 +76,7 @@
 static int pca953x_write_single(struct udevice *dev, int reg, u8 val,
 				int offset)
 {
-	struct pca953x_info *info = dev_get_platdata(dev);
+	struct pca953x_info *info = dev_get_plat(dev);
 	int bank_shift = fls((info->gpio_count - 1) / BANK_SZ);
 	int off = offset / BANK_SZ;
 	int ret = 0;
@@ -93,7 +93,7 @@
 static int pca953x_read_single(struct udevice *dev, int reg, u8 *val,
 			       int offset)
 {
-	struct pca953x_info *info = dev_get_platdata(dev);
+	struct pca953x_info *info = dev_get_plat(dev);
 	int bank_shift = fls((info->gpio_count - 1) / BANK_SZ);
 	int off = offset / BANK_SZ;
 	int ret;
@@ -112,7 +112,7 @@
 
 static int pca953x_read_regs(struct udevice *dev, int reg, u8 *val)
 {
-	struct pca953x_info *info = dev_get_platdata(dev);
+	struct pca953x_info *info = dev_get_plat(dev);
 	int ret = 0;
 
 	if (info->gpio_count <= 8) {
@@ -137,7 +137,7 @@
 
 static int pca953x_write_regs(struct udevice *dev, int reg, u8 *val)
 {
-	struct pca953x_info *info = dev_get_platdata(dev);
+	struct pca953x_info *info = dev_get_plat(dev);
 	int ret = 0;
 
 	if (info->gpio_count <= 8) {
@@ -160,7 +160,7 @@
 
 static int pca953x_is_output(struct udevice *dev, int offset)
 {
-	struct pca953x_info *info = dev_get_platdata(dev);
+	struct pca953x_info *info = dev_get_plat(dev);
 
 	int bank = offset / BANK_SZ;
 	int off = offset % BANK_SZ;
@@ -185,7 +185,7 @@
 
 static int pca953x_set_value(struct udevice *dev, uint offset, int value)
 {
-	struct pca953x_info *info = dev_get_platdata(dev);
+	struct pca953x_info *info = dev_get_plat(dev);
 	int bank = offset / BANK_SZ;
 	int off = offset % BANK_SZ;
 	u8 val;
@@ -207,7 +207,7 @@
 
 static int pca953x_set_direction(struct udevice *dev, uint offset, int dir)
 {
-	struct pca953x_info *info = dev_get_platdata(dev);
+	struct pca953x_info *info = dev_get_plat(dev);
 	int bank = offset / BANK_SZ;
 	int off = offset % BANK_SZ;
 	u8 val;
@@ -271,7 +271,7 @@
 
 static int pca953x_probe(struct udevice *dev)
 {
-	struct pca953x_info *info = dev_get_platdata(dev);
+	struct pca953x_info *info = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 	char name[32], label[8], *str;
 	int addr;
diff --git a/drivers/gpio/pcf8575_gpio.c b/drivers/gpio/pcf8575_gpio.c
index d0ff881..570486f 100644
--- a/drivers/gpio/pcf8575_gpio.c
+++ b/drivers/gpio/pcf8575_gpio.c
@@ -85,7 +85,7 @@
 
 static int pcf8575_direction_input(struct udevice *dev, unsigned offset)
 {
-	struct pcf8575_chip *plat = dev_get_platdata(dev);
+	struct pcf8575_chip *plat = dev_get_plat(dev);
 	int status;
 
 	plat->out |= BIT(offset);
@@ -97,7 +97,7 @@
 static int pcf8575_direction_output(struct udevice *dev,
 				    unsigned int offset, int value)
 {
-	struct pcf8575_chip *plat = dev_get_platdata(dev);
+	struct pcf8575_chip *plat = dev_get_plat(dev);
 	int ret;
 
 	if (value)
@@ -127,7 +127,7 @@
 
 static int pcf8575_ofdata_platdata(struct udevice *dev)
 {
-	struct pcf8575_chip *plat = dev_get_platdata(dev);
+	struct pcf8575_chip *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 
 	int n_latch;
diff --git a/drivers/gpio/sifive-gpio.c b/drivers/gpio/sifive-gpio.c
index 4be8d4f..79d3ed4 100644
--- a/drivers/gpio/sifive-gpio.c
+++ b/drivers/gpio/sifive-gpio.c
@@ -15,7 +15,7 @@
 
 static int sifive_gpio_probe(struct udevice *dev)
 {
-	struct sifive_gpio_platdata *plat = dev_get_platdata(dev);
+	struct sifive_gpio_platdata *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 	char name[18], *str;
 
@@ -49,7 +49,7 @@
 
 static int sifive_gpio_direction_input(struct udevice *dev, u32 offset)
 {
-	struct sifive_gpio_platdata *plat = dev_get_platdata(dev);
+	struct sifive_gpio_platdata *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 
 	if (offset > uc_priv->gpio_count)
@@ -65,7 +65,7 @@
 static int sifive_gpio_direction_output(struct udevice *dev, u32 offset,
 					int value)
 {
-	struct sifive_gpio_platdata *plat = dev_get_platdata(dev);
+	struct sifive_gpio_platdata *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 
 	if (offset > uc_priv->gpio_count)
@@ -83,7 +83,7 @@
 
 static int sifive_gpio_get_value(struct udevice *dev, u32 offset)
 {
-	struct sifive_gpio_platdata *plat = dev_get_platdata(dev);
+	struct sifive_gpio_platdata *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 	int val;
 	int dir;
@@ -104,7 +104,7 @@
 
 static int sifive_gpio_set_value(struct udevice *dev, u32 offset, int value)
 {
-	struct sifive_gpio_platdata *plat = dev_get_platdata(dev);
+	struct sifive_gpio_platdata *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 
 	if (offset > uc_priv->gpio_count)
@@ -117,7 +117,7 @@
 
 static int sifive_gpio_get_function(struct udevice *dev, unsigned int offset)
 {
-	struct sifive_gpio_platdata *plat = dev_get_platdata(dev);
+	struct sifive_gpio_platdata *plat = dev_get_plat(dev);
 	u32	outdir, indir, val;
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 
@@ -156,7 +156,7 @@
 
 static int sifive_gpio_ofdata_to_platdata(struct udevice *dev)
 {
-	struct sifive_gpio_platdata *plat = dev_get_platdata(dev);
+	struct sifive_gpio_platdata *plat = dev_get_plat(dev);
 	fdt_addr_t addr;
 
 	addr = dev_read_addr(dev);
diff --git a/drivers/gpio/sunxi_gpio.c b/drivers/gpio/sunxi_gpio.c
index 62d584a..567bd64 100644
--- a/drivers/gpio/sunxi_gpio.c
+++ b/drivers/gpio/sunxi_gpio.c
@@ -158,7 +158,7 @@
 
 static int sunxi_gpio_direction_input(struct udevice *dev, unsigned offset)
 {
-	struct sunxi_gpio_platdata *plat = dev_get_platdata(dev);
+	struct sunxi_gpio_platdata *plat = dev_get_plat(dev);
 
 	sunxi_gpio_set_cfgbank(plat->regs, offset, SUNXI_GPIO_INPUT);
 
@@ -168,7 +168,7 @@
 static int sunxi_gpio_direction_output(struct udevice *dev, unsigned offset,
 				       int value)
 {
-	struct sunxi_gpio_platdata *plat = dev_get_platdata(dev);
+	struct sunxi_gpio_platdata *plat = dev_get_plat(dev);
 	u32 num = GPIO_NUM(offset);
 
 	sunxi_gpio_set_cfgbank(plat->regs, offset, SUNXI_GPIO_OUTPUT);
@@ -179,7 +179,7 @@
 
 static int sunxi_gpio_get_value(struct udevice *dev, unsigned offset)
 {
-	struct sunxi_gpio_platdata *plat = dev_get_platdata(dev);
+	struct sunxi_gpio_platdata *plat = dev_get_plat(dev);
 	u32 num = GPIO_NUM(offset);
 	unsigned dat;
 
@@ -192,7 +192,7 @@
 static int sunxi_gpio_set_value(struct udevice *dev, unsigned offset,
 				int value)
 {
-	struct sunxi_gpio_platdata *plat = dev_get_platdata(dev);
+	struct sunxi_gpio_platdata *plat = dev_get_plat(dev);
 	u32 num = GPIO_NUM(offset);
 
 	clrsetbits_le32(&plat->regs->dat, 1 << num, value ? (1 << num) : 0);
@@ -201,7 +201,7 @@
 
 static int sunxi_gpio_get_function(struct udevice *dev, unsigned offset)
 {
-	struct sunxi_gpio_platdata *plat = dev_get_platdata(dev);
+	struct sunxi_gpio_platdata *plat = dev_get_plat(dev);
 	int func;
 
 	func = sunxi_gpio_get_cfgbank(plat->regs, offset);
@@ -260,7 +260,7 @@
 
 static int gpio_sunxi_probe(struct udevice *dev)
 {
-	struct sunxi_gpio_platdata *plat = dev_get_platdata(dev);
+	struct sunxi_gpio_platdata *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 
 	/* Tell the uclass how many GPIOs we have */
diff --git a/drivers/gpio/vybrid_gpio.c b/drivers/gpio/vybrid_gpio.c
index f55553c..bb04b82 100644
--- a/drivers/gpio/vybrid_gpio.c
+++ b/drivers/gpio/vybrid_gpio.c
@@ -93,7 +93,7 @@
 static int vybrid_gpio_probe(struct udevice *dev)
 {
 	struct vybrid_gpios *gpios = dev_get_priv(dev);
-	struct vybrid_gpio_platdata *plat = dev_get_platdata(dev);
+	struct vybrid_gpio_platdata *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 
 	uc_priv->bank_name = plat->port_name;
@@ -106,7 +106,7 @@
 
 static int vybrid_gpio_odata_to_platdata(struct udevice *dev)
 {
-	struct vybrid_gpio_platdata *plat = dev_get_platdata(dev);
+	struct vybrid_gpio_platdata *plat = dev_get_plat(dev);
 	fdt_addr_t base_addr;
 
 	base_addr = dev_read_addr(dev);
diff --git a/drivers/gpio/xilinx_gpio.c b/drivers/gpio/xilinx_gpio.c
index 6de08e1..847f399 100644
--- a/drivers/gpio/xilinx_gpio.c
+++ b/drivers/gpio/xilinx_gpio.c
@@ -36,7 +36,7 @@
 static int xilinx_gpio_get_bank_pin(unsigned offset, u32 *bank_num,
 				    u32 *bank_pin_num, struct udevice *dev)
 {
-	struct xilinx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct xilinx_gpio_platdata *plat = dev_get_plat(dev);
 	u32 bank, max_pins;
 	/* the first gpio is 0 not 1 */
 	u32 pin_num = offset;
@@ -59,7 +59,7 @@
 static int xilinx_gpio_set_value(struct udevice *dev, unsigned offset,
 				 int value)
 {
-	struct xilinx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct xilinx_gpio_platdata *plat = dev_get_plat(dev);
 	struct xilinx_gpio_privdata *priv = dev_get_priv(dev);
 	int val, ret;
 	u32 bank, pin;
@@ -87,7 +87,7 @@
 
 static int xilinx_gpio_get_value(struct udevice *dev, unsigned offset)
 {
-	struct xilinx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct xilinx_gpio_platdata *plat = dev_get_plat(dev);
 	struct xilinx_gpio_privdata *priv = dev_get_priv(dev);
 	int val, ret;
 	u32 bank, pin;
@@ -114,7 +114,7 @@
 
 static int xilinx_gpio_get_function(struct udevice *dev, unsigned offset)
 {
-	struct xilinx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct xilinx_gpio_platdata *plat = dev_get_plat(dev);
 	int val, ret;
 	u32 bank, pin;
 
@@ -143,7 +143,7 @@
 static int xilinx_gpio_direction_output(struct udevice *dev, unsigned offset,
 					int value)
 {
-	struct xilinx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct xilinx_gpio_platdata *plat = dev_get_plat(dev);
 	int val, ret;
 	u32 bank, pin;
 
@@ -168,7 +168,7 @@
 
 static int xilinx_gpio_direction_input(struct udevice *dev, unsigned offset)
 {
-	struct xilinx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct xilinx_gpio_platdata *plat = dev_get_plat(dev);
 	int val, ret;
 	u32 bank, pin;
 
@@ -194,7 +194,7 @@
 static int xilinx_gpio_xlate(struct udevice *dev, struct gpio_desc *desc,
 			     struct ofnode_phandle_args *args)
 {
-	struct xilinx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct xilinx_gpio_platdata *plat = dev_get_plat(dev);
 
 	desc->offset = args->args[0];
 
@@ -239,7 +239,7 @@
 
 static int xilinx_gpio_probe(struct udevice *dev)
 {
-	struct xilinx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct xilinx_gpio_platdata *plat = dev_get_plat(dev);
 	struct xilinx_gpio_privdata *priv = dev_get_priv(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 	const void *label_ptr;
@@ -265,7 +265,7 @@
 
 static int xilinx_gpio_ofdata_to_platdata(struct udevice *dev)
 {
-	struct xilinx_gpio_platdata *plat = dev_get_platdata(dev);
+	struct xilinx_gpio_platdata *plat = dev_get_plat(dev);
 	int is_dual;
 
 	plat->regs = (struct gpio_regs *)dev_read_addr(dev);
diff --git a/drivers/gpio/zynq_gpio.c b/drivers/gpio/zynq_gpio.c
index cfe3567..a273aff 100644
--- a/drivers/gpio/zynq_gpio.c
+++ b/drivers/gpio/zynq_gpio.c
@@ -193,7 +193,7 @@
 					  unsigned int *bank_pin_num,
 					  struct udevice *dev)
 {
-	struct zynq_gpio_platdata *plat = dev_get_platdata(dev);
+	struct zynq_gpio_platdata *plat = dev_get_plat(dev);
 	u32 bank;
 
 	for (bank = 0; bank < plat->p_data->max_bank; bank++) {
@@ -215,7 +215,7 @@
 
 static int gpio_is_valid(unsigned gpio, struct udevice *dev)
 {
-	struct zynq_gpio_platdata *plat = dev_get_platdata(dev);
+	struct zynq_gpio_platdata *plat = dev_get_plat(dev);
 
 	return gpio < plat->p_data->ngpio;
 }
@@ -233,7 +233,7 @@
 {
 	u32 data;
 	unsigned int bank_num, bank_pin_num;
-	struct zynq_gpio_platdata *plat = dev_get_platdata(dev);
+	struct zynq_gpio_platdata *plat = dev_get_plat(dev);
 
 	if (check_gpio(gpio, dev) < 0)
 		return -1;
@@ -249,7 +249,7 @@
 static int zynq_gpio_set_value(struct udevice *dev, unsigned gpio, int value)
 {
 	unsigned int reg_offset, bank_num, bank_pin_num;
-	struct zynq_gpio_platdata *plat = dev_get_platdata(dev);
+	struct zynq_gpio_platdata *plat = dev_get_plat(dev);
 
 	if (check_gpio(gpio, dev) < 0)
 		return -1;
@@ -281,7 +281,7 @@
 {
 	u32 reg;
 	unsigned int bank_num, bank_pin_num;
-	struct zynq_gpio_platdata *plat = dev_get_platdata(dev);
+	struct zynq_gpio_platdata *plat = dev_get_plat(dev);
 
 	if (check_gpio(gpio, dev) < 0)
 		return -1;
@@ -305,7 +305,7 @@
 {
 	u32 reg;
 	unsigned int bank_num, bank_pin_num;
-	struct zynq_gpio_platdata *plat = dev_get_platdata(dev);
+	struct zynq_gpio_platdata *plat = dev_get_plat(dev);
 
 	if (check_gpio(gpio, dev) < 0)
 		return -1;
@@ -331,7 +331,7 @@
 {
 	u32 reg;
 	unsigned int bank_num, bank_pin_num;
-	struct zynq_gpio_platdata *plat = dev_get_platdata(dev);
+	struct zynq_gpio_platdata *plat = dev_get_plat(dev);
 
 	if (check_gpio(offset, dev) < 0)
 		return -1;
@@ -369,7 +369,7 @@
 
 static int zynq_gpio_probe(struct udevice *dev)
 {
-	struct zynq_gpio_platdata *plat = dev_get_platdata(dev);
+	struct zynq_gpio_platdata *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 	const void *label_ptr;
 
@@ -390,7 +390,7 @@
 
 static int zynq_gpio_ofdata_to_platdata(struct udevice *dev)
 {
-	struct zynq_gpio_platdata *plat = dev_get_platdata(dev);
+	struct zynq_gpio_platdata *plat = dev_get_plat(dev);
 
 	plat->base = (phys_addr_t)dev_read_addr(dev);
 
diff --git a/drivers/i2c/lpc32xx_i2c.c b/drivers/i2c/lpc32xx_i2c.c
index 6af2e97..e321d4b 100644
--- a/drivers/i2c/lpc32xx_i2c.c
+++ b/drivers/i2c/lpc32xx_i2c.c
@@ -281,7 +281,7 @@
 #else /* CONFIG_DM_I2C */
 static int lpc32xx_i2c_probe(struct udevice *bus)
 {
-	struct lpc32xx_i2c_dev *dev = dev_get_platdata(bus);
+	struct lpc32xx_i2c_dev *dev = dev_get_plat(bus);
 	bus->seq = dev->index;
 
 	__i2c_init(dev->base, dev->speed, 0, dev->index);
@@ -291,14 +291,14 @@
 static int lpc32xx_i2c_probe_chip(struct udevice *bus, u32 chip_addr,
 				  u32 chip_flags)
 {
-	struct lpc32xx_i2c_dev *dev = dev_get_platdata(bus);
+	struct lpc32xx_i2c_dev *dev = dev_get_plat(bus);
 	return __i2c_probe_chip(dev->base, chip_addr);
 }
 
 static int lpc32xx_i2c_xfer(struct udevice *bus, struct i2c_msg *msg,
 		int nmsgs)
 {
-	struct lpc32xx_i2c_dev *dev = dev_get_platdata(bus);
+	struct lpc32xx_i2c_dev *dev = dev_get_plat(bus);
 	struct i2c_msg *dmsg, *omsg, dummy;
 	uint i = 0, address = 0;
 
@@ -330,13 +330,13 @@
 
 static int lpc32xx_i2c_set_bus_speed(struct udevice *bus, unsigned int speed)
 {
-	struct lpc32xx_i2c_dev *dev = dev_get_platdata(bus);
+	struct lpc32xx_i2c_dev *dev = dev_get_plat(bus);
 	return __i2c_set_bus_speed(dev->base, speed, dev->index);
 }
 
 static int lpc32xx_i2c_reset(struct udevice *bus)
 {
-	struct lpc32xx_i2c_dev *dev = dev_get_platdata(bus);
+	struct lpc32xx_i2c_dev *dev = dev_get_plat(bus);
 
 	__i2c_init(dev->base, dev->speed, 0, dev->index);
 	return 0;
diff --git a/drivers/i2c/omap24xx_i2c.c b/drivers/i2c/omap24xx_i2c.c
index ea9e933..9d05a1f 100644
--- a/drivers/i2c/omap24xx_i2c.c
+++ b/drivers/i2c/omap24xx_i2c.c
@@ -1049,7 +1049,7 @@
 static int omap_i2c_probe(struct udevice *bus)
 {
 	struct omap_i2c *priv = dev_get_priv(bus);
-	struct omap_i2c_platdata *plat = dev_get_platdata(bus);
+	struct omap_i2c_platdata *plat = dev_get_plat(bus);
 
 	priv->speed = plat->speed;
 	priv->regs = map_physmem(plat->base, sizeof(void *),
@@ -1065,7 +1065,7 @@
 #if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA)
 static int omap_i2c_ofdata_to_platdata(struct udevice *bus)
 {
-	struct omap_i2c_platdata *plat = dev_get_platdata(bus);
+	struct omap_i2c_platdata *plat = dev_get_plat(bus);
 
 	plat->base = dev_read_addr(bus);
 	plat->speed = dev_read_u32_default(bus, "clock-frequency",
diff --git a/drivers/led/led_cortina.c b/drivers/led/led_cortina.c
index f9e497f..c705eba 100644
--- a/drivers/led/led_cortina.c
+++ b/drivers/led/led_cortina.c
@@ -136,7 +136,7 @@
 
 	/* Top-level LED node */
 	if (!uc_plat->label) {
-		struct cortina_led_platdata *plt = dev_get_platdata(dev);
+		struct cortina_led_platdata *plt = dev_get_plat(dev);
 
 		plt->rate1 =
 			dev_read_u32_default(dev, "Cortina,blink-rate1", 256);
@@ -169,7 +169,7 @@
 
 	/* Top-level LED node */
 	if (!uc_plat->label) {
-		struct cortina_led_platdata *plat = dev_get_platdata(dev);
+		struct cortina_led_platdata *plat = dev_get_plat(dev);
 		u32 reg_value, val;
 		u16 rate1, rate2;
 
diff --git a/drivers/misc/altera_sysid.c b/drivers/misc/altera_sysid.c
index 2bb520f..31684d7 100644
--- a/drivers/misc/altera_sysid.c
+++ b/drivers/misc/altera_sysid.c
@@ -71,7 +71,7 @@
 
 static int altera_sysid_ofdata_to_platdata(struct udevice *dev)
 {
-	struct altera_sysid_platdata *plat = dev_get_platdata(dev);
+	struct altera_sysid_platdata *plat = dev_get_plat(dev);
 
 	plat->regs = map_physmem(dev_read_addr(dev),
 				 sizeof(struct altera_sysid_regs),
diff --git a/drivers/misc/i2c_eeprom_emul.c b/drivers/misc/i2c_eeprom_emul.c
index 65db9c8..92b2f27 100644
--- a/drivers/misc/i2c_eeprom_emul.c
+++ b/drivers/misc/i2c_eeprom_emul.c
@@ -36,14 +36,14 @@
 void sandbox_i2c_eeprom_set_test_mode(struct udevice *dev,
 				      enum sandbox_i2c_eeprom_test_mode mode)
 {
-	struct sandbox_i2c_flash_plat_data *plat = dev_get_platdata(dev);
+	struct sandbox_i2c_flash_plat_data *plat = dev_get_plat(dev);
 
 	plat->test_mode = mode;
 }
 
 void sandbox_i2c_eeprom_set_offset_len(struct udevice *dev, int offset_len)
 {
-	struct sandbox_i2c_flash_plat_data *plat = dev_get_platdata(dev);
+	struct sandbox_i2c_flash_plat_data *plat = dev_get_plat(dev);
 
 	plat->offset_len = offset_len;
 }
@@ -51,7 +51,7 @@
 void sandbox_i2c_eeprom_set_chip_addr_offset_mask(struct udevice *dev,
 						  uint mask)
 {
-	struct sandbox_i2c_flash_plat_data *plat = dev_get_platdata(dev);
+	struct sandbox_i2c_flash_plat_data *plat = dev_get_plat(dev);
 
 	plat->chip_addr_offset_mask = mask;
 }
@@ -74,7 +74,7 @@
 				  int nmsgs)
 {
 	struct sandbox_i2c_flash *priv = dev_get_priv(emul);
-	struct sandbox_i2c_flash_plat_data *plat = dev_get_platdata(emul);
+	struct sandbox_i2c_flash_plat_data *plat = dev_get_plat(emul);
 	uint offset = msg->addr & plat->chip_addr_offset_mask;
 
 	debug("\n%s\n", __func__);
@@ -151,7 +151,7 @@
 
 static int sandbox_i2c_eeprom_ofdata_to_platdata(struct udevice *dev)
 {
-	struct sandbox_i2c_flash_plat_data *plat = dev_get_platdata(dev);
+	struct sandbox_i2c_flash_plat_data *plat = dev_get_plat(dev);
 
 	plat->size = dev_read_u32_default(dev, "sandbox,size", 32);
 	plat->filename = dev_read_string(dev, "sandbox,filename");
@@ -169,7 +169,7 @@
 
 static int sandbox_i2c_eeprom_probe(struct udevice *dev)
 {
-	struct sandbox_i2c_flash_plat_data *plat = dev_get_platdata(dev);
+	struct sandbox_i2c_flash_plat_data *plat = dev_get_plat(dev);
 	struct sandbox_i2c_flash *priv = dev_get_priv(dev);
 
 	priv->data = calloc(1, plat->size);
diff --git a/drivers/misc/imx8/scu.c b/drivers/misc/imx8/scu.c
index 65e34d5..72a3473 100644
--- a/drivers/misc/imx8/scu.c
+++ b/drivers/misc/imx8/scu.c
@@ -158,7 +158,7 @@
 static int imx8_scu_call(struct udevice *dev, int no_resp, void *tx_msg,
 			 int tx_size, void *rx_msg, int rx_size)
 {
-	struct imx8_scu *plat = dev_get_platdata(dev);
+	struct imx8_scu *plat = dev_get_plat(dev);
 	sc_err_t result;
 	int ret;
 
@@ -182,7 +182,7 @@
 
 static int imx8_scu_probe(struct udevice *dev)
 {
-	struct imx8_scu *plat = dev_get_platdata(dev);
+	struct imx8_scu *plat = dev_get_plat(dev);
 	fdt_addr_t addr;
 
 	debug("%s(dev=%p) (plat=%p)\n", __func__, dev, plat);
diff --git a/drivers/misc/microchip_flexcom.c b/drivers/misc/microchip_flexcom.c
index 1d9ca82..a95d9cb 100644
--- a/drivers/misc/microchip_flexcom.c
+++ b/drivers/misc/microchip_flexcom.c
@@ -23,7 +23,7 @@
 
 static int microchip_flexcom_ofdata_to_platdata(struct udevice *dev)
 {
-	struct microchip_flexcom_platdata *plat = dev_get_platdata(dev);
+	struct microchip_flexcom_platdata *plat = dev_get_plat(dev);
 	int ret;
 
 	plat->regs = map_physmem(dev_read_addr(dev),
diff --git a/drivers/misc/p2sb_emul.c b/drivers/misc/p2sb_emul.c
index 642e94f..5c70ca8 100644
--- a/drivers/misc/p2sb_emul.c
+++ b/drivers/misc/p2sb_emul.c
@@ -53,7 +53,7 @@
 					 uint offset, ulong *valuep,
 					 enum pci_size_t size)
 {
-	struct p2sb_emul_platdata *plat = dev_get_platdata(emul);
+	struct p2sb_emul_platdata *plat = dev_get_plat(emul);
 
 	switch (offset) {
 	case PCI_COMMAND:
@@ -106,7 +106,7 @@
 static int sandbox_p2sb_emul_write_config(struct udevice *emul, uint offset,
 					  ulong value, enum pci_size_t size)
 {
-	struct p2sb_emul_platdata *plat = dev_get_platdata(emul);
+	struct p2sb_emul_platdata *plat = dev_get_plat(emul);
 
 	switch (offset) {
 	case PCI_COMMAND:
@@ -134,7 +134,7 @@
 static int sandbox_p2sb_emul_find_bar(struct udevice *emul, unsigned int addr,
 				      int *barnump, unsigned int *offsetp)
 {
-	struct p2sb_emul_platdata *plat = dev_get_platdata(emul);
+	struct p2sb_emul_platdata *plat = dev_get_plat(emul);
 	int barnum;
 
 	for (barnum = 0; barnum < ARRAY_SIZE(barinfo); barnum++) {
diff --git a/drivers/misc/rockchip-efuse.c b/drivers/misc/rockchip-efuse.c
index d3aa5b9..4659d4e 100644
--- a/drivers/misc/rockchip-efuse.c
+++ b/drivers/misc/rockchip-efuse.c
@@ -86,7 +86,7 @@
 static int rockchip_rk3399_efuse_read(struct udevice *dev, int offset,
 				      void *buf, int size)
 {
-	struct rockchip_efuse_platdata *plat = dev_get_platdata(dev);
+	struct rockchip_efuse_platdata *plat = dev_get_plat(dev);
 	struct rockchip_efuse_regs *efuse =
 		(struct rockchip_efuse_regs *)plat->base;
 
@@ -139,7 +139,7 @@
 
 static int rockchip_efuse_ofdata_to_platdata(struct udevice *dev)
 {
-	struct rockchip_efuse_platdata *plat = dev_get_platdata(dev);
+	struct rockchip_efuse_platdata *plat = dev_get_plat(dev);
 
 	plat->base = dev_read_addr_ptr(dev);
 	return 0;
diff --git a/drivers/misc/rockchip-otp.c b/drivers/misc/rockchip-otp.c
index be666bc..b56eb66 100644
--- a/drivers/misc/rockchip-otp.c
+++ b/drivers/misc/rockchip-otp.c
@@ -102,7 +102,7 @@
 static int rockchip_px30_otp_read(struct udevice *dev, int offset,
 				  void *buf, int size)
 {
-	struct rockchip_otp_platdata *otp = dev_get_platdata(dev);
+	struct rockchip_otp_platdata *otp = dev_get_plat(dev);
 	u8 *buffer = buf;
 	int ret = 0;
 
@@ -147,7 +147,7 @@
 
 static int rockchip_otp_ofdata_to_platdata(struct udevice *dev)
 {
-	struct rockchip_otp_platdata *otp = dev_get_platdata(dev);
+	struct rockchip_otp_platdata *otp = dev_get_plat(dev);
 
 	otp->base = dev_read_addr_ptr(dev);
 
diff --git a/drivers/misc/sifive-otp.c b/drivers/misc/sifive-otp.c
index 33c0d68..1f0bd1d 100644
--- a/drivers/misc/sifive-otp.c
+++ b/drivers/misc/sifive-otp.c
@@ -100,7 +100,7 @@
 static int sifive_otp_read(struct udevice *dev, int offset,
 			   void *buf, int size)
 {
-	struct sifive_otp_platdata *plat = dev_get_platdata(dev);
+	struct sifive_otp_platdata *plat = dev_get_plat(dev);
 	struct sifive_otp_regs *regs = (struct sifive_otp_regs *)plat->regs;
 
 	/* Check if offset and size are multiple of BYTES_PER_FUSE */
@@ -162,7 +162,7 @@
 static int sifive_otp_write(struct udevice *dev, int offset,
 			    const void *buf, int size)
 {
-	struct sifive_otp_platdata *plat = dev_get_platdata(dev);
+	struct sifive_otp_platdata *plat = dev_get_plat(dev);
 	struct sifive_otp_regs *regs = (struct sifive_otp_regs *)plat->regs;
 
 	/* Check if offset and size are multiple of BYTES_PER_FUSE */
@@ -241,7 +241,7 @@
 
 static int sifive_otp_ofdata_to_platdata(struct udevice *dev)
 {
-	struct sifive_otp_platdata *plat = dev_get_platdata(dev);
+	struct sifive_otp_platdata *plat = dev_get_plat(dev);
 	int ret;
 
 	plat->regs = dev_read_addr_ptr(dev);
diff --git a/drivers/misc/swap_case.c b/drivers/misc/swap_case.c
index 5de7841..9dd3b06 100644
--- a/drivers/misc/swap_case.c
+++ b/drivers/misc/swap_case.c
@@ -100,7 +100,7 @@
 					 uint offset, ulong *valuep,
 					 enum pci_size_t size)
 {
-	struct swap_case_platdata *plat = dev_get_platdata(emul);
+	struct swap_case_platdata *plat = dev_get_plat(emul);
 
 	/*
 	 * The content of the EA capability structure is handled elsewhere to
@@ -200,7 +200,7 @@
 static int sandbox_swap_case_write_config(struct udevice *emul, uint offset,
 					  ulong value, enum pci_size_t size)
 {
-	struct swap_case_platdata *plat = dev_get_platdata(emul);
+	struct swap_case_platdata *plat = dev_get_plat(emul);
 
 	switch (offset) {
 	case PCI_COMMAND:
@@ -228,7 +228,7 @@
 static int sandbox_swap_case_find_bar(struct udevice *emul, unsigned int addr,
 				      int *barnump, unsigned int *offsetp)
 {
-	struct swap_case_platdata *plat = dev_get_platdata(emul);
+	struct swap_case_platdata *plat = dev_get_plat(emul);
 	int barnum;
 
 	for (barnum = 0; barnum < ARRAY_SIZE(barinfo); barnum++) {
diff --git a/drivers/mmc/am654_sdhci.c b/drivers/mmc/am654_sdhci.c
index 2015e31..1fca3e6 100644
--- a/drivers/mmc/am654_sdhci.c
+++ b/drivers/mmc/am654_sdhci.c
@@ -129,7 +129,7 @@
 static int am654_sdhci_set_ios_post(struct sdhci_host *host)
 {
 	struct udevice *dev = host->mmc->dev;
-	struct am654_sdhci_plat *plat = dev_get_platdata(dev);
+	struct am654_sdhci_plat *plat = dev_get_plat(dev);
 	unsigned int speed = host->mmc->clock;
 	int sel50, sel100, freqsel;
 	u32 otap_del_sel;
@@ -269,7 +269,7 @@
 static int am654_sdhci_deferred_probe(struct sdhci_host *host)
 {
 	struct udevice *dev = host->mmc->dev;
-	struct am654_sdhci_plat *plat = dev_get_platdata(dev);
+	struct am654_sdhci_plat *plat = dev_get_plat(dev);
 	unsigned long start;
 	int val;
 
@@ -311,7 +311,7 @@
 static int j721e_4bit_sdhci_set_ios_post(struct sdhci_host *host)
 {
 	struct udevice *dev = host->mmc->dev;
-	struct am654_sdhci_plat *plat = dev_get_platdata(dev);
+	struct am654_sdhci_plat *plat = dev_get_plat(dev);
 	u32 otap_del_sel, mask, val;
 
 	otap_del_sel = plat->otap_del_sel[host->mmc->selected_mode];
@@ -335,7 +335,7 @@
 static int sdhci_am654_get_otap_delay(struct udevice *dev,
 				      struct mmc_config *cfg)
 {
-	struct am654_sdhci_plat *plat = dev_get_platdata(dev);
+	struct am654_sdhci_plat *plat = dev_get_plat(dev);
 	int ret;
 	int i;
 
@@ -367,7 +367,7 @@
 {
 	struct am654_driver_data *drv_data =
 			(struct am654_driver_data *)dev_get_driver_data(dev);
-	struct am654_sdhci_plat *plat = dev_get_platdata(dev);
+	struct am654_sdhci_plat *plat = dev_get_plat(dev);
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	struct sdhci_host *host = dev_get_priv(dev);
 	struct mmc_config *cfg = &plat->cfg;
@@ -410,7 +410,7 @@
 
 static int am654_sdhci_ofdata_to_platdata(struct udevice *dev)
 {
-	struct am654_sdhci_plat *plat = dev_get_platdata(dev);
+	struct am654_sdhci_plat *plat = dev_get_plat(dev);
 	struct sdhci_host *host = dev_get_priv(dev);
 	struct mmc_config *cfg = &plat->cfg;
 	u32 drv_strength;
@@ -463,7 +463,7 @@
 {
 	struct am654_driver_data *drv_data =
 			(struct am654_driver_data *)dev_get_driver_data(dev);
-	struct am654_sdhci_plat *plat = dev_get_platdata(dev);
+	struct am654_sdhci_plat *plat = dev_get_plat(dev);
 
 	plat->flags = drv_data->flags;
 
diff --git a/drivers/mmc/arm_pl180_mmci.c b/drivers/mmc/arm_pl180_mmci.c
index 6d983d0..7dc23ca 100644
--- a/drivers/mmc/arm_pl180_mmci.c
+++ b/drivers/mmc/arm_pl180_mmci.c
@@ -418,7 +418,7 @@
 
 static int arm_pl180_mmc_probe(struct udevice *dev)
 {
-	struct arm_pl180_mmc_plat *pdata = dev_get_platdata(dev);
+	struct arm_pl180_mmc_plat *pdata = dev_get_plat(dev);
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	struct mmc *mmc = &pdata->mmc;
 	struct pl180_mmc_host *host = dev->priv;
@@ -486,7 +486,7 @@
 
 int arm_pl180_mmc_bind(struct udevice *dev)
 {
-	struct arm_pl180_mmc_plat *plat = dev_get_platdata(dev);
+	struct arm_pl180_mmc_plat *plat = dev_get_plat(dev);
 
 	return mmc_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/aspeed_sdhci.c b/drivers/mmc/aspeed_sdhci.c
index 1e340f8..4537315 100644
--- a/drivers/mmc/aspeed_sdhci.c
+++ b/drivers/mmc/aspeed_sdhci.c
@@ -19,7 +19,7 @@
 static int aspeed_sdhci_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct aspeed_sdhci_plat *plat = dev_get_platdata(dev);
+	struct aspeed_sdhci_plat *plat = dev_get_plat(dev);
 	struct sdhci_host *host = dev_get_priv(dev);
 	u32 max_clk;
 	struct clk clk;
@@ -67,7 +67,7 @@
 
 static int aspeed_sdhci_bind(struct udevice *dev)
 {
-	struct aspeed_sdhci_plat *plat = dev_get_platdata(dev);
+	struct aspeed_sdhci_plat *plat = dev_get_plat(dev);
 
 	return sdhci_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/atmel_sdhci.c b/drivers/mmc/atmel_sdhci.c
index ee5d0dc..2de8eb8 100644
--- a/drivers/mmc/atmel_sdhci.c
+++ b/drivers/mmc/atmel_sdhci.c
@@ -54,7 +54,7 @@
 static int atmel_sdhci_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct atmel_sdhci_plat *plat = dev_get_platdata(dev);
+	struct atmel_sdhci_plat *plat = dev_get_plat(dev);
 	struct sdhci_host *host = dev_get_priv(dev);
 	u32 max_clk;
 	struct clk clk;
@@ -111,7 +111,7 @@
 
 static int atmel_sdhci_bind(struct udevice *dev)
 {
-	struct atmel_sdhci_plat *plat = dev_get_platdata(dev);
+	struct atmel_sdhci_plat *plat = dev_get_plat(dev);
 
 	return sdhci_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/bcm2835_sdhci.c b/drivers/mmc/bcm2835_sdhci.c
index 958129c..5e48394 100644
--- a/drivers/mmc/bcm2835_sdhci.c
+++ b/drivers/mmc/bcm2835_sdhci.c
@@ -166,7 +166,7 @@
 
 static int bcm2835_sdhci_bind(struct udevice *dev)
 {
-	struct bcm2835_sdhci_plat *plat = dev_get_platdata(dev);
+	struct bcm2835_sdhci_plat *plat = dev_get_plat(dev);
 
 	return sdhci_bind(dev, &plat->mmc, &plat->cfg);
 }
@@ -174,7 +174,7 @@
 static int bcm2835_sdhci_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct bcm2835_sdhci_plat *plat = dev_get_platdata(dev);
+	struct bcm2835_sdhci_plat *plat = dev_get_plat(dev);
 	struct bcm2835_sdhci_host *priv = dev_get_priv(dev);
 	struct sdhci_host *host = &priv->host;
 	fdt_addr_t base;
diff --git a/drivers/mmc/bcm2835_sdhost.c b/drivers/mmc/bcm2835_sdhost.c
index 8531f54..894dbdd 100644
--- a/drivers/mmc/bcm2835_sdhost.c
+++ b/drivers/mmc/bcm2835_sdhost.c
@@ -755,7 +755,7 @@
 
 static int bcm2835_probe(struct udevice *dev)
 {
-	struct bcm2835_plat *plat = dev_get_platdata(dev);
+	struct bcm2835_plat *plat = dev_get_plat(dev);
 	struct bcm2835_host *host = dev_get_priv(dev);
 	struct mmc *mmc = mmc_get_mmc_dev(dev);
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
@@ -795,7 +795,7 @@
 
 static int bcm2835_bind(struct udevice *dev)
 {
-	struct bcm2835_plat *plat = dev_get_platdata(dev);
+	struct bcm2835_plat *plat = dev_get_plat(dev);
 
 	return mmc_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/bcmstb_sdhci.c b/drivers/mmc/bcmstb_sdhci.c
index e8041eb..dc96818 100644
--- a/drivers/mmc/bcmstb_sdhci.c
+++ b/drivers/mmc/bcmstb_sdhci.c
@@ -49,7 +49,7 @@
 
 static int sdhci_bcmstb_bind(struct udevice *dev)
 {
-	struct sdhci_bcmstb_plat *plat = dev_get_platdata(dev);
+	struct sdhci_bcmstb_plat *plat = dev_get_plat(dev);
 
 	return sdhci_bind(dev, &plat->mmc, &plat->cfg);
 }
@@ -57,7 +57,7 @@
 static int sdhci_bcmstb_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct sdhci_bcmstb_plat *plat = dev_get_platdata(dev);
+	struct sdhci_bcmstb_plat *plat = dev_get_plat(dev);
 	struct sdhci_host *host = dev_get_priv(dev);
 	fdt_addr_t base;
 	int ret;
diff --git a/drivers/mmc/ca_dw_mmc.c b/drivers/mmc/ca_dw_mmc.c
index f295c54..5b08d09 100644
--- a/drivers/mmc/ca_dw_mmc.c
+++ b/drivers/mmc/ca_dw_mmc.c
@@ -124,7 +124,7 @@
 
 static int ca_dwmmc_probe(struct udevice *dev)
 {
-	struct ca_mmc_plat *plat = dev_get_platdata(dev);
+	struct ca_mmc_plat *plat = dev_get_plat(dev);
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	struct ca_dwmmc_priv_data *priv = dev_get_priv(dev);
 	struct dwmci_host *host = &priv->host;
@@ -148,7 +148,7 @@
 
 static int ca_dwmmc_bind(struct udevice *dev)
 {
-	struct ca_mmc_plat *plat = dev_get_platdata(dev);
+	struct ca_mmc_plat *plat = dev_get_plat(dev);
 
 	return dwmci_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/davinci_mmc.c b/drivers/mmc/davinci_mmc.c
index d3562c3..975a6be 100644
--- a/drivers/mmc/davinci_mmc.c
+++ b/drivers/mmc/davinci_mmc.c
@@ -478,7 +478,7 @@
 static int davinci_mmc_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct davinci_mmc_plat *plat = dev_get_platdata(dev);
+	struct davinci_mmc_plat *plat = dev_get_plat(dev);
 	struct davinci_mmc_priv *priv = dev_get_priv(dev);
 
 	priv->reg_base = plat->reg_base;
@@ -495,7 +495,7 @@
 
 static int davinci_mmc_bind(struct udevice *dev)
 {
-	struct davinci_mmc_plat *plat = dev_get_platdata(dev);
+	struct davinci_mmc_plat *plat = dev_get_plat(dev);
 
 	return mmc_bind(dev, &plat->mmc, &plat->cfg);
 }
@@ -503,7 +503,7 @@
 #if CONFIG_IS_ENABLED(OF_CONTROL)
 static int davinci_mmc_ofdata_to_platdata(struct udevice *dev)
 {
-	struct davinci_mmc_plat *plat = dev_get_platdata(dev);
+	struct davinci_mmc_plat *plat = dev_get_plat(dev);
 	struct mmc_config *cfg = &plat->cfg;
 
 	plat->reg_base = (struct davinci_mmc_regs *)dev_read_addr(dev);
diff --git a/drivers/mmc/exynos_dw_mmc.c b/drivers/mmc/exynos_dw_mmc.c
index 5cc28c5..3aa9fb3 100644
--- a/drivers/mmc/exynos_dw_mmc.c
+++ b/drivers/mmc/exynos_dw_mmc.c
@@ -263,7 +263,7 @@
 #ifdef CONFIG_DM_MMC
 static int exynos_dwmmc_probe(struct udevice *dev)
 {
-	struct exynos_mmc_plat *plat = dev_get_platdata(dev);
+	struct exynos_mmc_plat *plat = dev_get_plat(dev);
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	struct dwmci_exynos_priv_data *priv = dev_get_priv(dev);
 	struct dwmci_host *host = &priv->host;
@@ -288,7 +288,7 @@
 
 static int exynos_dwmmc_bind(struct udevice *dev)
 {
-	struct exynos_mmc_plat *plat = dev_get_platdata(dev);
+	struct exynos_mmc_plat *plat = dev_get_plat(dev);
 
 	return dwmci_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c
index ad0dada..b5f3fd1 100644
--- a/drivers/mmc/fsl_esdhc.c
+++ b/drivers/mmc/fsl_esdhc.c
@@ -955,7 +955,7 @@
 static int fsl_esdhc_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct fsl_esdhc_plat *plat = dev_get_platdata(dev);
+	struct fsl_esdhc_plat *plat = dev_get_plat(dev);
 	struct fsl_esdhc_priv *priv = dev_get_priv(dev);
 	u32 caps, hostver;
 	fdt_addr_t addr;
@@ -1022,7 +1022,7 @@
 
 static int fsl_esdhc_get_cd(struct udevice *dev)
 {
-	struct fsl_esdhc_plat *plat = dev_get_platdata(dev);
+	struct fsl_esdhc_plat *plat = dev_get_plat(dev);
 	struct fsl_esdhc_priv *priv = dev_get_priv(dev);
 
 	if (plat->cfg.host_caps & MMC_CAP_NONREMOVABLE)
@@ -1034,7 +1034,7 @@
 static int fsl_esdhc_send_cmd(struct udevice *dev, struct mmc_cmd *cmd,
 			      struct mmc_data *data)
 {
-	struct fsl_esdhc_plat *plat = dev_get_platdata(dev);
+	struct fsl_esdhc_plat *plat = dev_get_plat(dev);
 	struct fsl_esdhc_priv *priv = dev_get_priv(dev);
 
 	return esdhc_send_cmd_common(priv, &plat->mmc, cmd, data);
@@ -1042,7 +1042,7 @@
 
 static int fsl_esdhc_set_ios(struct udevice *dev)
 {
-	struct fsl_esdhc_plat *plat = dev_get_platdata(dev);
+	struct fsl_esdhc_plat *plat = dev_get_plat(dev);
 	struct fsl_esdhc_priv *priv = dev_get_priv(dev);
 
 	return esdhc_set_ios_common(priv, &plat->mmc);
@@ -1050,7 +1050,7 @@
 
 static int fsl_esdhc_reinit(struct udevice *dev)
 {
-	struct fsl_esdhc_plat *plat = dev_get_platdata(dev);
+	struct fsl_esdhc_plat *plat = dev_get_plat(dev);
 	struct fsl_esdhc_priv *priv = dev_get_priv(dev);
 
 	return esdhc_init_common(priv, &plat->mmc);
@@ -1059,7 +1059,7 @@
 #ifdef MMC_SUPPORTS_TUNING
 static int fsl_esdhc_execute_tuning(struct udevice *dev, uint32_t opcode)
 {
-	struct fsl_esdhc_plat *plat = dev_get_platdata(dev);
+	struct fsl_esdhc_plat *plat = dev_get_plat(dev);
 	struct fsl_esdhc_priv *priv = dev_get_priv(dev);
 	struct fsl_esdhc *regs = priv->esdhc_regs;
 	u32 val, irqstaten;
@@ -1124,7 +1124,7 @@
 
 static int fsl_esdhc_bind(struct udevice *dev)
 {
-	struct fsl_esdhc_plat *plat = dev_get_platdata(dev);
+	struct fsl_esdhc_plat *plat = dev_get_plat(dev);
 
 	return mmc_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/fsl_esdhc_imx.c b/drivers/mmc/fsl_esdhc_imx.c
index 54a42e0..2b89b96 100644
--- a/drivers/mmc/fsl_esdhc_imx.c
+++ b/drivers/mmc/fsl_esdhc_imx.c
@@ -851,7 +851,7 @@
 
 static int fsl_esdhc_execute_tuning(struct udevice *dev, uint32_t opcode)
 {
-	struct fsl_esdhc_plat *plat = dev_get_platdata(dev);
+	struct fsl_esdhc_plat *plat = dev_get_plat(dev);
 	struct fsl_esdhc_priv *priv = dev_get_priv(dev);
 	struct fsl_esdhc *regs = priv->esdhc_regs;
 	struct mmc *mmc = &plat->mmc;
@@ -1474,7 +1474,7 @@
 static int fsl_esdhc_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct fsl_esdhc_plat *plat = dev_get_platdata(dev);
+	struct fsl_esdhc_plat *plat = dev_get_plat(dev);
 	struct fsl_esdhc_priv *priv = dev_get_priv(dev);
 	struct esdhc_soc_data *data =
 		(struct esdhc_soc_data *)dev_get_driver_data(dev);
@@ -1617,7 +1617,7 @@
 static int fsl_esdhc_send_cmd(struct udevice *dev, struct mmc_cmd *cmd,
 			      struct mmc_data *data)
 {
-	struct fsl_esdhc_plat *plat = dev_get_platdata(dev);
+	struct fsl_esdhc_plat *plat = dev_get_plat(dev);
 	struct fsl_esdhc_priv *priv = dev_get_priv(dev);
 
 	return esdhc_send_cmd_common(priv, &plat->mmc, cmd, data);
@@ -1625,7 +1625,7 @@
 
 static int fsl_esdhc_set_ios(struct udevice *dev)
 {
-	struct fsl_esdhc_plat *plat = dev_get_platdata(dev);
+	struct fsl_esdhc_plat *plat = dev_get_plat(dev);
 	struct fsl_esdhc_priv *priv = dev_get_priv(dev);
 
 	return esdhc_set_ios_common(priv, &plat->mmc);
@@ -1691,7 +1691,7 @@
 #if CONFIG_IS_ENABLED(BLK)
 static int fsl_esdhc_bind(struct udevice *dev)
 {
-	struct fsl_esdhc_plat *plat = dev_get_platdata(dev);
+	struct fsl_esdhc_plat *plat = dev_get_plat(dev);
 
 	return mmc_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/ftsdc010_mci.c b/drivers/mmc/ftsdc010_mci.c
index 196c527..1c31874 100644
--- a/drivers/mmc/ftsdc010_mci.c
+++ b/drivers/mmc/ftsdc010_mci.c
@@ -424,7 +424,7 @@
 
 static int ftsdc010_mmc_probe(struct udevice *dev)
 {
-	struct ftsdc010_plat *plat = dev_get_platdata(dev);
+	struct ftsdc010_plat *plat = dev_get_plat(dev);
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	struct ftsdc_priv *priv = dev_get_priv(dev);
 	struct ftsdc010_chip *chip = &priv->chip;
@@ -459,7 +459,7 @@
 
 int ftsdc010_mmc_bind(struct udevice *dev)
 {
-	struct ftsdc010_plat *plat = dev_get_platdata(dev);
+	struct ftsdc010_plat *plat = dev_get_plat(dev);
 
 	return mmc_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/gen_atmel_mci.c b/drivers/mmc/gen_atmel_mci.c
index 6f056ae..da81425 100644
--- a/drivers/mmc/gen_atmel_mci.c
+++ b/drivers/mmc/gen_atmel_mci.c
@@ -91,7 +91,7 @@
 #ifdef CONFIG_DM_MMC
 static void mci_set_mode(struct udevice *dev, u32 hz, u32 blklen)
 {
-	struct atmel_mci_plat *plat = dev_get_platdata(dev);
+	struct atmel_mci_plat *plat = dev_get_plat(dev);
 	struct atmel_mci_priv *priv = dev_get_priv(dev);
 	struct mmc *mmc = &plat->mmc;
 	u32 bus_hz = priv->bus_clk_rate;
@@ -242,7 +242,7 @@
 static int atmel_mci_send_cmd(struct udevice *dev, struct mmc_cmd *cmd,
 			      struct mmc_data *data)
 {
-	struct atmel_mci_plat *plat = dev_get_platdata(dev);
+	struct atmel_mci_plat *plat = dev_get_plat(dev);
 	struct atmel_mci_priv *priv = dev_get_priv(dev);
 	atmel_mci_t *mci = plat->mci;
 #else
@@ -373,7 +373,7 @@
 #ifdef CONFIG_DM_MMC
 static int atmel_mci_set_ios(struct udevice *dev)
 {
-	struct atmel_mci_plat *plat = dev_get_platdata(dev);
+	struct atmel_mci_plat *plat = dev_get_plat(dev);
 	struct mmc *mmc = mmc_get_mmc_dev(dev);
 	atmel_mci_t *mci = plat->mci;
 #else
@@ -424,7 +424,7 @@
 #ifdef CONFIG_DM_MMC
 static int atmel_mci_hw_init(struct udevice *dev)
 {
-	struct atmel_mci_plat *plat = dev_get_platdata(dev);
+	struct atmel_mci_plat *plat = dev_get_plat(dev);
 	atmel_mci_t *mci = plat->mci;
 #else
 /* Entered into mmc structure during driver init */
@@ -525,7 +525,7 @@
 
 static void atmel_mci_setup_cfg(struct udevice *dev)
 {
-	struct atmel_mci_plat *plat = dev_get_platdata(dev);
+	struct atmel_mci_plat *plat = dev_get_plat(dev);
 	struct atmel_mci_priv *priv = dev_get_priv(dev);
 	struct mmc_config *cfg;
 	u32 version;
@@ -584,7 +584,7 @@
 static int atmel_mci_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct atmel_mci_plat *plat = dev_get_platdata(dev);
+	struct atmel_mci_plat *plat = dev_get_plat(dev);
 	struct mmc *mmc;
 	int ret;
 
@@ -608,7 +608,7 @@
 
 static int atmel_mci_bind(struct udevice *dev)
 {
-	struct atmel_mci_plat *plat = dev_get_platdata(dev);
+	struct atmel_mci_plat *plat = dev_get_plat(dev);
 
 	return mmc_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/hi6220_dw_mmc.c b/drivers/mmc/hi6220_dw_mmc.c
index ae9f5a0..5fd71b8 100644
--- a/drivers/mmc/hi6220_dw_mmc.c
+++ b/drivers/mmc/hi6220_dw_mmc.c
@@ -50,7 +50,7 @@
 
 static int hi6220_dwmmc_probe(struct udevice *dev)
 {
-	struct hi6220_dwmmc_plat *plat = dev_get_platdata(dev);
+	struct hi6220_dwmmc_plat *plat = dev_get_plat(dev);
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	struct hi6220_dwmmc_priv_data *priv = dev_get_priv(dev);
 	struct dwmci_host *host = &priv->host;
@@ -74,7 +74,7 @@
 
 static int hi6220_dwmmc_bind(struct udevice *dev)
 {
-	struct hi6220_dwmmc_plat *plat = dev_get_platdata(dev);
+	struct hi6220_dwmmc_plat *plat = dev_get_plat(dev);
 	int ret;
 
 	ret = dwmci_bind(dev, &plat->mmc, &plat->cfg);
diff --git a/drivers/mmc/iproc_sdhci.c b/drivers/mmc/iproc_sdhci.c
index a85697c..f931e4b 100644
--- a/drivers/mmc/iproc_sdhci.c
+++ b/drivers/mmc/iproc_sdhci.c
@@ -172,7 +172,7 @@
 static int iproc_sdhci_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct iproc_sdhci_plat *plat = dev_get_platdata(dev);
+	struct iproc_sdhci_plat *plat = dev_get_plat(dev);
 	struct sdhci_host *host = dev_get_priv(dev);
 	struct sdhci_iproc_host *iproc_host;
 	int node = dev_of_offset(dev);
@@ -230,7 +230,7 @@
 
 static int iproc_sdhci_bind(struct udevice *dev)
 {
-	struct iproc_sdhci_plat *plat = dev_get_platdata(dev);
+	struct iproc_sdhci_plat *plat = dev_get_plat(dev);
 
 	return sdhci_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/jz_mmc.c b/drivers/mmc/jz_mmc.c
index 99f2c2f..edcfbfb 100644
--- a/drivers/mmc/jz_mmc.c
+++ b/drivers/mmc/jz_mmc.c
@@ -446,7 +446,7 @@
 static int jz_mmc_ofdata_to_platdata(struct udevice *dev)
 {
 	struct jz_mmc_priv *priv = dev_get_priv(dev);
-	struct jz_mmc_plat *plat = dev_get_platdata(dev);
+	struct jz_mmc_plat *plat = dev_get_plat(dev);
 	struct mmc_config *cfg;
 	int ret;
 
@@ -473,7 +473,7 @@
 
 static int jz_mmc_bind(struct udevice *dev)
 {
-	struct jz_mmc_plat *plat = dev_get_platdata(dev);
+	struct jz_mmc_plat *plat = dev_get_plat(dev);
 
 	return mmc_bind(dev, &plat->mmc, &plat->cfg);
 }
@@ -482,7 +482,7 @@
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	struct jz_mmc_priv *priv = dev_get_priv(dev);
-	struct jz_mmc_plat *plat = dev_get_platdata(dev);
+	struct jz_mmc_plat *plat = dev_get_plat(dev);
 
 	plat->mmc.priv = priv;
 	upriv->mmc = &plat->mmc;
diff --git a/drivers/mmc/meson_gx_mmc.c b/drivers/mmc/meson_gx_mmc.c
index 6a9662f..ab10d7c 100644
--- a/drivers/mmc/meson_gx_mmc.c
+++ b/drivers/mmc/meson_gx_mmc.c
@@ -243,7 +243,7 @@
 
 static int meson_mmc_ofdata_to_platdata(struct udevice *dev)
 {
-	struct meson_mmc_platdata *pdata = dev_get_platdata(dev);
+	struct meson_mmc_platdata *pdata = dev_get_plat(dev);
 	fdt_addr_t addr;
 
 	addr = dev_read_addr(dev);
@@ -257,7 +257,7 @@
 
 static int meson_mmc_probe(struct udevice *dev)
 {
-	struct meson_mmc_platdata *pdata = dev_get_platdata(dev);
+	struct meson_mmc_platdata *pdata = dev_get_plat(dev);
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	struct mmc *mmc = &pdata->mmc;
 	struct mmc_config *cfg = &pdata->cfg;
@@ -320,7 +320,7 @@
 
 int meson_mmc_bind(struct udevice *dev)
 {
-	struct meson_mmc_platdata *pdata = dev_get_platdata(dev);
+	struct meson_mmc_platdata *pdata = dev_get_plat(dev);
 
 	return mmc_bind(dev, &pdata->mmc, &pdata->cfg);
 }
diff --git a/drivers/mmc/mmc_spi.c b/drivers/mmc/mmc_spi.c
index d0c4397..51b1aa4 100644
--- a/drivers/mmc/mmc_spi.c
+++ b/drivers/mmc/mmc_spi.c
@@ -411,7 +411,7 @@
 static int mmc_spi_probe(struct udevice *dev)
 {
 	struct mmc_spi_priv *priv = dev_get_priv(dev);
-	struct mmc_spi_plat *plat = dev_get_platdata(dev);
+	struct mmc_spi_plat *plat = dev_get_plat(dev);
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	char *name;
 
@@ -446,7 +446,7 @@
 
 static int mmc_spi_bind(struct udevice *dev)
 {
-	struct mmc_spi_plat *plat = dev_get_platdata(dev);
+	struct mmc_spi_plat *plat = dev_get_plat(dev);
 
 	return mmc_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/msm_sdhci.c b/drivers/mmc/msm_sdhci.c
index 45bf269..da4cecd 100644
--- a/drivers/mmc/msm_sdhci.c
+++ b/drivers/mmc/msm_sdhci.c
@@ -87,7 +87,7 @@
 static int msm_sdc_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct msm_sdhc_plat *plat = dev_get_platdata(dev);
+	struct msm_sdhc_plat *plat = dev_get_plat(dev);
 	struct msm_sdhc *prv = dev_get_priv(dev);
 	struct sdhci_host *host = &prv->host;
 	u32 core_version, core_minor, core_major;
@@ -189,7 +189,7 @@
 
 static int msm_sdc_bind(struct udevice *dev)
 {
-	struct msm_sdhc_plat *plat = dev_get_platdata(dev);
+	struct msm_sdhc_plat *plat = dev_get_plat(dev);
 
 	return sdhci_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/mtk-sd.c b/drivers/mmc/mtk-sd.c
index 59217e5..cc9d685 100644
--- a/drivers/mmc/mtk-sd.c
+++ b/drivers/mmc/mtk-sd.c
@@ -885,7 +885,7 @@
 
 static int msdc_ops_set_ios(struct udevice *dev)
 {
-	struct msdc_plat *plat = dev_get_platdata(dev);
+	struct msdc_plat *plat = dev_get_plat(dev);
 	struct msdc_host *host = dev_get_priv(dev);
 	struct mmc *mmc = &plat->mmc;
 	uint clock = mmc->clock;
@@ -1031,7 +1031,7 @@
 
 static int hs400_tune_response(struct udevice *dev, u32 opcode)
 {
-	struct msdc_plat *plat = dev_get_platdata(dev);
+	struct msdc_plat *plat = dev_get_plat(dev);
 	struct msdc_host *host = dev_get_priv(dev);
 	struct mmc *mmc = &plat->mmc;
 	u32 cmd_delay  = 0;
@@ -1081,7 +1081,7 @@
 
 static int msdc_tune_response(struct udevice *dev, u32 opcode)
 {
-	struct msdc_plat *plat = dev_get_platdata(dev);
+	struct msdc_plat *plat = dev_get_plat(dev);
 	struct msdc_host *host = dev_get_priv(dev);
 	struct mmc *mmc = &plat->mmc;
 	u32 rise_delay = 0, fall_delay = 0;
@@ -1185,7 +1185,7 @@
 
 static int msdc_tune_data(struct udevice *dev, u32 opcode)
 {
-	struct msdc_plat *plat = dev_get_platdata(dev);
+	struct msdc_plat *plat = dev_get_plat(dev);
 	struct msdc_host *host = dev_get_priv(dev);
 	struct mmc *mmc = &plat->mmc;
 	u32 rise_delay = 0, fall_delay = 0;
@@ -1276,7 +1276,7 @@
  */
 static int msdc_tune_together(struct udevice *dev, u32 opcode)
 {
-	struct msdc_plat *plat = dev_get_platdata(dev);
+	struct msdc_plat *plat = dev_get_plat(dev);
 	struct msdc_host *host = dev_get_priv(dev);
 	struct mmc *mmc = &plat->mmc;
 	u32 rise_delay = 0, fall_delay = 0;
@@ -1334,7 +1334,7 @@
 
 static int msdc_execute_tuning(struct udevice *dev, uint opcode)
 {
-	struct msdc_plat *plat = dev_get_platdata(dev);
+	struct msdc_plat *plat = dev_get_plat(dev);
 	struct msdc_host *host = dev_get_priv(dev);
 	struct mmc *mmc = &plat->mmc;
 	int ret = 0;
@@ -1511,7 +1511,7 @@
 static int msdc_drv_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct msdc_plat *plat = dev_get_platdata(dev);
+	struct msdc_plat *plat = dev_get_plat(dev);
 	struct msdc_host *host = dev_get_priv(dev);
 	struct mmc_config *cfg = &plat->cfg;
 
@@ -1547,7 +1547,7 @@
 
 static int msdc_ofdata_to_platdata(struct udevice *dev)
 {
-	struct msdc_plat *plat = dev_get_platdata(dev);
+	struct msdc_plat *plat = dev_get_plat(dev);
 	struct msdc_host *host = dev_get_priv(dev);
 	struct mmc_config *cfg = &plat->cfg;
 	fdt_addr_t base, top_base;
@@ -1598,7 +1598,7 @@
 
 static int msdc_drv_bind(struct udevice *dev)
 {
-	struct msdc_plat *plat = dev_get_platdata(dev);
+	struct msdc_plat *plat = dev_get_plat(dev);
 
 	return mmc_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/mv_sdhci.c b/drivers/mmc/mv_sdhci.c
index 4cc1613..556dd38 100644
--- a/drivers/mmc/mv_sdhci.c
+++ b/drivers/mmc/mv_sdhci.c
@@ -107,7 +107,7 @@
 static int mv_sdhci_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct mv_sdhci_plat *plat = dev_get_platdata(dev);
+	struct mv_sdhci_plat *plat = dev_get_plat(dev);
 	struct sdhci_host *host = dev_get_priv(dev);
 	int ret;
 
@@ -134,7 +134,7 @@
 
 static int mv_sdhci_bind(struct udevice *dev)
 {
-	struct mv_sdhci_plat *plat = dev_get_platdata(dev);
+	struct mv_sdhci_plat *plat = dev_get_plat(dev);
 
 	return sdhci_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/mxsmmc.c b/drivers/mmc/mxsmmc.c
index a313791..dcf6c7c 100644
--- a/drivers/mmc/mxsmmc.c
+++ b/drivers/mmc/mxsmmc.c
@@ -310,7 +310,7 @@
 static int
 mxsmmc_send_cmd(struct udevice *dev, struct mmc_cmd *cmd, struct mmc_data *data)
 {
-	struct mxsmmc_platdata *plat = dev_get_platdata(dev);
+	struct mxsmmc_platdata *plat = dev_get_plat(dev);
 	struct mxsmmc_priv *priv = dev_get_priv(dev);
 	struct mxs_ssp_regs *ssp_regs = priv->regs;
 	struct mmc *mmc = &plat->mmc;
@@ -490,7 +490,7 @@
 
 static int mxsmmc_get_cd(struct udevice *dev)
 {
-	struct mxsmmc_platdata *plat = dev_get_platdata(dev);
+	struct mxsmmc_platdata *plat = dev_get_plat(dev);
 	struct mxsmmc_priv *priv = dev_get_priv(dev);
 	struct mxs_ssp_regs *ssp_regs = priv->regs;
 
@@ -502,7 +502,7 @@
 
 static int mxsmmc_set_ios(struct udevice *dev)
 {
-	struct mxsmmc_platdata *plat = dev_get_platdata(dev);
+	struct mxsmmc_platdata *plat = dev_get_plat(dev);
 	struct mxsmmc_priv *priv = dev_get_priv(dev);
 	struct mxs_ssp_regs *ssp_regs = priv->regs;
 	struct mmc *mmc = &plat->mmc;
@@ -567,7 +567,7 @@
 static int mxsmmc_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct mxsmmc_platdata *plat = dev_get_platdata(dev);
+	struct mxsmmc_platdata *plat = dev_get_plat(dev);
 	struct mxsmmc_priv *priv = dev_get_priv(dev);
 	struct blk_desc *bdesc;
 	struct mmc *mmc;
@@ -653,7 +653,7 @@
 #if CONFIG_IS_ENABLED(BLK)
 static int mxsmmc_bind(struct udevice *dev)
 {
-	struct mxsmmc_platdata *plat = dev_get_platdata(dev);
+	struct mxsmmc_platdata *plat = dev_get_plat(dev);
 
 	return mmc_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/nexell_dw_mmc.c b/drivers/mmc/nexell_dw_mmc.c
index d03d589..537be0d 100644
--- a/drivers/mmc/nexell_dw_mmc.c
+++ b/drivers/mmc/nexell_dw_mmc.c
@@ -179,7 +179,7 @@
 
 static int nexell_dwmmc_probe(struct udevice *dev)
 {
-	struct nexell_mmc_plat *plat = dev_get_platdata(dev);
+	struct nexell_mmc_plat *plat = dev_get_plat(dev);
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	struct nexell_dwmmc_priv *priv = dev_get_priv(dev);
 	struct dwmci_host *host = &priv->host;
@@ -214,7 +214,7 @@
 
 static int nexell_dwmmc_bind(struct udevice *dev)
 {
-	struct nexell_mmc_plat *plat = dev_get_platdata(dev);
+	struct nexell_mmc_plat *plat = dev_get_plat(dev);
 
 	return dwmci_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/omap_hsmmc.c b/drivers/mmc/omap_hsmmc.c
index 658fd92..c4e9e82 100644
--- a/drivers/mmc/omap_hsmmc.c
+++ b/drivers/mmc/omap_hsmmc.c
@@ -180,7 +180,7 @@
 static inline struct mmc_config *omap_hsmmc_get_cfg(struct mmc *mmc)
 {
 #if CONFIG_IS_ENABLED(DM_MMC)
-	struct omap_hsmmc_plat *plat = dev_get_platdata(mmc->dev);
+	struct omap_hsmmc_plat *plat = dev_get_plat(mmc->dev);
 	return &plat->cfg;
 #else
 	return &((struct omap_hsmmc_data *)mmc->priv)->cfg;
@@ -1900,7 +1900,7 @@
 
 static int omap_hsmmc_ofdata_to_platdata(struct udevice *dev)
 {
-	struct omap_hsmmc_plat *plat = dev_get_platdata(dev);
+	struct omap_hsmmc_plat *plat = dev_get_plat(dev);
 	struct omap_mmc_of_data *of_data = (void *)dev_get_driver_data(dev);
 
 	struct mmc_config *cfg = &plat->cfg;
@@ -1949,14 +1949,14 @@
 
 static int omap_hsmmc_bind(struct udevice *dev)
 {
-	struct omap_hsmmc_plat *plat = dev_get_platdata(dev);
+	struct omap_hsmmc_plat *plat = dev_get_plat(dev);
 	plat->mmc = calloc(1, sizeof(struct mmc));
 	return mmc_bind(dev, plat->mmc, &plat->cfg);
 }
 #endif
 static int omap_hsmmc_probe(struct udevice *dev)
 {
-	struct omap_hsmmc_plat *plat = dev_get_platdata(dev);
+	struct omap_hsmmc_plat *plat = dev_get_plat(dev);
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	struct omap_hsmmc_data *priv = dev_get_priv(dev);
 	struct mmc_config *cfg = &plat->cfg;
diff --git a/drivers/mmc/pci_mmc.c b/drivers/mmc/pci_mmc.c
index d2cc58f..0aec3f7 100644
--- a/drivers/mmc/pci_mmc.c
+++ b/drivers/mmc/pci_mmc.c
@@ -31,7 +31,7 @@
 static int pci_mmc_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct pci_mmc_plat *plat = dev_get_platdata(dev);
+	struct pci_mmc_plat *plat = dev_get_plat(dev);
 	struct pci_mmc_priv *priv = dev_get_priv(dev);
 	struct sdhci_host *host = &priv->host;
 	int ret;
@@ -61,7 +61,7 @@
 
 static int pci_mmc_bind(struct udevice *dev)
 {
-	struct pci_mmc_plat *plat = dev_get_platdata(dev);
+	struct pci_mmc_plat *plat = dev_get_plat(dev);
 
 	return sdhci_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/pic32_sdhci.c b/drivers/mmc/pic32_sdhci.c
index 04eece5..fb37c67 100644
--- a/drivers/mmc/pic32_sdhci.c
+++ b/drivers/mmc/pic32_sdhci.c
@@ -18,7 +18,7 @@
 static int pic32_sdhci_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct pic32_sdhci_plat *plat = dev_get_platdata(dev);
+	struct pic32_sdhci_plat *plat = dev_get_plat(dev);
 	struct sdhci_host *host = dev_get_priv(dev);
 
 	struct clk clk;
@@ -71,7 +71,7 @@
 
 static int pic32_sdhci_bind(struct udevice *dev)
 {
-	struct pic32_sdhci_plat *plat = dev_get_platdata(dev);
+	struct pic32_sdhci_plat *plat = dev_get_plat(dev);
 
 	return sdhci_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/pxa_mmc_gen.c b/drivers/mmc/pxa_mmc_gen.c
index 8be9ed6..2b45549 100644
--- a/drivers/mmc/pxa_mmc_gen.c
+++ b/drivers/mmc/pxa_mmc_gen.c
@@ -459,7 +459,7 @@
 static int pxa_mmc_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct pxa_mmc_plat *plat = dev_get_platdata(dev);
+	struct pxa_mmc_plat *plat = dev_get_plat(dev);
 	struct mmc_config *cfg = &plat->cfg;
 	struct mmc *mmc = &plat->mmc;
 	struct pxa_mmc_priv *priv = dev_get_priv(dev);
@@ -494,7 +494,7 @@
 static int pxa_mmc_send_cmd(struct udevice *dev, struct mmc_cmd *cmd,
 			    struct mmc_data *data)
 {
-	struct pxa_mmc_plat *plat = dev_get_platdata(dev);
+	struct pxa_mmc_plat *plat = dev_get_plat(dev);
 	struct pxa_mmc_priv *priv = dev_get_priv(dev);
 
 	return pxa_mmc_send_cmd_common(priv, &plat->mmc, cmd, data);
@@ -502,7 +502,7 @@
 
 static int pxa_mmc_set_ios(struct udevice *dev)
 {
-	struct pxa_mmc_plat *plat = dev_get_platdata(dev);
+	struct pxa_mmc_plat *plat = dev_get_plat(dev);
 	struct pxa_mmc_priv *priv = dev_get_priv(dev);
 
 	return pxa_mmc_set_ios_common(priv, &plat->mmc);
@@ -517,7 +517,7 @@
 #if CONFIG_IS_ENABLED(BLK)
 static int pxa_mmc_bind(struct udevice *dev)
 {
-	struct pxa_mmc_plat *plat = dev_get_platdata(dev);
+	struct pxa_mmc_plat *plat = dev_get_plat(dev);
 
 	return mmc_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/renesas-sdhi.c b/drivers/mmc/renesas-sdhi.c
index 37c80ef..24130e6 100644
--- a/drivers/mmc/renesas-sdhi.c
+++ b/drivers/mmc/renesas-sdhi.c
@@ -865,7 +865,7 @@
 #if CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) || \
     CONFIG_IS_ENABLED(MMC_HS200_SUPPORT) || \
     CONFIG_IS_ENABLED(MMC_HS400_SUPPORT)
-	struct tmio_sd_plat *plat = dev_get_platdata(dev);
+	struct tmio_sd_plat *plat = dev_get_plat(dev);
 
 	/* HS400 is not supported on H3 ES1.x and M3W ES1.0, ES1.1 */
 	if (((rmobile_get_cpu_type() == RMOBILE_CPU_TYPE_R8A7795) &&
diff --git a/drivers/mmc/rockchip_dw_mmc.c b/drivers/mmc/rockchip_dw_mmc.c
index 67eb89b..51a6b4d 100644
--- a/drivers/mmc/rockchip_dw_mmc.c
+++ b/drivers/mmc/rockchip_dw_mmc.c
@@ -101,7 +101,7 @@
 
 static int rockchip_dwmmc_probe(struct udevice *dev)
 {
-	struct rockchip_mmc_plat *plat = dev_get_platdata(dev);
+	struct rockchip_mmc_plat *plat = dev_get_plat(dev);
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	struct rockchip_dwmmc_priv *priv = dev_get_priv(dev);
 	struct dwmci_host *host = &priv->host;
@@ -157,7 +157,7 @@
 
 static int rockchip_dwmmc_bind(struct udevice *dev)
 {
-	struct rockchip_mmc_plat *plat = dev_get_platdata(dev);
+	struct rockchip_mmc_plat *plat = dev_get_plat(dev);
 
 	return dwmci_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/rockchip_sdhci.c b/drivers/mmc/rockchip_sdhci.c
index 427d41e..939b234 100644
--- a/drivers/mmc/rockchip_sdhci.c
+++ b/drivers/mmc/rockchip_sdhci.c
@@ -34,7 +34,7 @@
 static int arasan_sdhci_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct rockchip_sdhc_plat *plat = dev_get_platdata(dev);
+	struct rockchip_sdhc_plat *plat = dev_get_plat(dev);
 	struct rockchip_sdhc *prv = dev_get_priv(dev);
 	struct sdhci_host *host = &prv->host;
 	int max_frequency, ret;
@@ -96,7 +96,7 @@
 
 static int rockchip_sdhci_bind(struct udevice *dev)
 {
-	struct rockchip_sdhc_plat *plat = dev_get_platdata(dev);
+	struct rockchip_sdhc_plat *plat = dev_get_plat(dev);
 
 	return sdhci_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/s5p_sdhci.c b/drivers/mmc/s5p_sdhci.c
index 82aff9c..3cf56e0 100644
--- a/drivers/mmc/s5p_sdhci.c
+++ b/drivers/mmc/s5p_sdhci.c
@@ -192,7 +192,7 @@
 #ifdef CONFIG_DM_MMC
 static int s5p_sdhci_probe(struct udevice *dev)
 {
-	struct s5p_sdhci_plat *plat = dev_get_platdata(dev);
+	struct s5p_sdhci_plat *plat = dev_get_plat(dev);
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	struct sdhci_host *host = dev_get_priv(dev);
 	int ret;
@@ -224,7 +224,7 @@
 
 static int s5p_sdhci_bind(struct udevice *dev)
 {
-	struct s5p_sdhci_plat *plat = dev_get_platdata(dev);
+	struct s5p_sdhci_plat *plat = dev_get_plat(dev);
 	int ret;
 
 	ret = sdhci_bind(dev, &plat->mmc, &plat->cfg);
diff --git a/drivers/mmc/sandbox_mmc.c b/drivers/mmc/sandbox_mmc.c
index 17c6cea..8a2391d 100644
--- a/drivers/mmc/sandbox_mmc.c
+++ b/drivers/mmc/sandbox_mmc.c
@@ -108,14 +108,14 @@
 
 int sandbox_mmc_probe(struct udevice *dev)
 {
-	struct sandbox_mmc_plat *plat = dev_get_platdata(dev);
+	struct sandbox_mmc_plat *plat = dev_get_plat(dev);
 
 	return mmc_init(&plat->mmc);
 }
 
 int sandbox_mmc_bind(struct udevice *dev)
 {
-	struct sandbox_mmc_plat *plat = dev_get_platdata(dev);
+	struct sandbox_mmc_plat *plat = dev_get_plat(dev);
 	struct mmc_config *cfg = &plat->cfg;
 
 	cfg->name = dev->name;
diff --git a/drivers/mmc/sdhci-cadence.c b/drivers/mmc/sdhci-cadence.c
index ffbac44..2b726c2 100644
--- a/drivers/mmc/sdhci-cadence.c
+++ b/drivers/mmc/sdhci-cadence.c
@@ -135,7 +135,7 @@
 static void sdhci_cdns_set_control_reg(struct sdhci_host *host)
 {
 	struct mmc *mmc = host->mmc;
-	struct sdhci_cdns_plat *plat = dev_get_platdata(mmc->dev);
+	struct sdhci_cdns_plat *plat = dev_get_plat(mmc->dev);
 	unsigned int clock = mmc->clock;
 	u32 mode, tmp;
 
@@ -203,7 +203,7 @@
 static int __maybe_unused sdhci_cdns_execute_tuning(struct udevice *dev,
 						    unsigned int opcode)
 {
-	struct sdhci_cdns_plat *plat = dev_get_platdata(dev);
+	struct sdhci_cdns_plat *plat = dev_get_plat(dev);
 	struct mmc *mmc = &plat->mmc;
 	int cur_streak = 0;
 	int max_streak = 0;
@@ -246,7 +246,7 @@
 
 static int sdhci_cdns_bind(struct udevice *dev)
 {
-	struct sdhci_cdns_plat *plat = dev_get_platdata(dev);
+	struct sdhci_cdns_plat *plat = dev_get_plat(dev);
 
 	return sdhci_bind(dev, &plat->mmc, &plat->cfg);
 }
@@ -255,7 +255,7 @@
 {
 	DECLARE_GLOBAL_DATA_PTR;
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct sdhci_cdns_plat *plat = dev_get_platdata(dev);
+	struct sdhci_cdns_plat *plat = dev_get_plat(dev);
 	struct sdhci_host *host = dev_get_priv(dev);
 	fdt_addr_t base;
 	int ret;
diff --git a/drivers/mmc/sh_mmcif.c b/drivers/mmc/sh_mmcif.c
index 723e3e3..af342f2 100644
--- a/drivers/mmc/sh_mmcif.c
+++ b/drivers/mmc/sh_mmcif.c
@@ -666,14 +666,14 @@
 
 static int sh_mmcif_dm_bind(struct udevice *dev)
 {
-	struct sh_mmcif_plat *plat = dev_get_platdata(dev);
+	struct sh_mmcif_plat *plat = dev_get_plat(dev);
 
 	return mmc_bind(dev, &plat->mmc, &plat->cfg);
 }
 
 static int sh_mmcif_dm_probe(struct udevice *dev)
 {
-	struct sh_mmcif_plat *plat = dev_get_platdata(dev);
+	struct sh_mmcif_plat *plat = dev_get_plat(dev);
 	struct sh_mmcif_host *host = dev_get_priv(dev);
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	struct clk sh_mmcif_clk;
diff --git a/drivers/mmc/sh_sdhi.c b/drivers/mmc/sh_sdhi.c
index 9fcd0e0..b8865b1 100644
--- a/drivers/mmc/sh_sdhi.c
+++ b/drivers/mmc/sh_sdhi.c
@@ -818,14 +818,14 @@
 
 static int sh_sdhi_dm_bind(struct udevice *dev)
 {
-	struct sh_sdhi_plat *plat = dev_get_platdata(dev);
+	struct sh_sdhi_plat *plat = dev_get_plat(dev);
 
 	return mmc_bind(dev, &plat->mmc, &plat->cfg);
 }
 
 static int sh_sdhi_dm_probe(struct udevice *dev)
 {
-	struct sh_sdhi_plat *plat = dev_get_platdata(dev);
+	struct sh_sdhi_plat *plat = dev_get_plat(dev);
 	struct sh_sdhi_host *host = dev_get_priv(dev);
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	struct clk sh_sdhi_clk;
diff --git a/drivers/mmc/snps_dw_mmc.c b/drivers/mmc/snps_dw_mmc.c
index 0533bc2..ad274f5 100644
--- a/drivers/mmc/snps_dw_mmc.c
+++ b/drivers/mmc/snps_dw_mmc.c
@@ -132,7 +132,7 @@
 static int snps_dwmmc_probe(struct udevice *dev)
 {
 #ifdef CONFIG_BLK
-	struct snps_dwmci_plat *plat = dev_get_platdata(dev);
+	struct snps_dwmci_plat *plat = dev_get_plat(dev);
 #endif
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	struct snps_dwmci_priv_data *priv = dev_get_priv(dev);
@@ -171,7 +171,7 @@
 static int snps_dwmmc_bind(struct udevice *dev)
 {
 #ifdef CONFIG_BLK
-	struct snps_dwmci_plat *plat = dev_get_platdata(dev);
+	struct snps_dwmci_plat *plat = dev_get_plat(dev);
 	int ret;
 
 	ret = dwmci_bind(dev, &plat->mmc, &plat->cfg);
diff --git a/drivers/mmc/socfpga_dw_mmc.c b/drivers/mmc/socfpga_dw_mmc.c
index 2d5efb9..84f8b8d 100644
--- a/drivers/mmc/socfpga_dw_mmc.c
+++ b/drivers/mmc/socfpga_dw_mmc.c
@@ -133,7 +133,7 @@
 static int socfpga_dwmmc_probe(struct udevice *dev)
 {
 #ifdef CONFIG_BLK
-	struct socfpga_dwmci_plat *plat = dev_get_platdata(dev);
+	struct socfpga_dwmci_plat *plat = dev_get_plat(dev);
 #endif
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	struct dwmci_socfpga_priv_data *priv = dev_get_priv(dev);
@@ -165,7 +165,7 @@
 static int socfpga_dwmmc_bind(struct udevice *dev)
 {
 #ifdef CONFIG_BLK
-	struct socfpga_dwmci_plat *plat = dev_get_platdata(dev);
+	struct socfpga_dwmci_plat *plat = dev_get_plat(dev);
 	int ret;
 
 	ret = dwmci_bind(dev, &plat->mmc, &plat->cfg);
diff --git a/drivers/mmc/sti_sdhci.c b/drivers/mmc/sti_sdhci.c
index 1da569c..4ad408a 100644
--- a/drivers/mmc/sti_sdhci.c
+++ b/drivers/mmc/sti_sdhci.c
@@ -35,7 +35,7 @@
  */
 static int sti_mmc_core_config(struct udevice *dev)
 {
-	struct sti_sdhci_plat *plat = dev_get_platdata(dev);
+	struct sti_sdhci_plat *plat = dev_get_plat(dev);
 	struct sdhci_host *host = dev_get_priv(dev);
 	int ret;
 
@@ -71,7 +71,7 @@
 static int sti_sdhci_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct sti_sdhci_plat *plat = dev_get_platdata(dev);
+	struct sti_sdhci_plat *plat = dev_get_plat(dev);
 	struct sdhci_host *host = dev_get_priv(dev);
 	int ret;
 
@@ -126,7 +126,7 @@
 
 static int sti_sdhci_bind(struct udevice *dev)
 {
-	struct sti_sdhci_plat *plat = dev_get_platdata(dev);
+	struct sti_sdhci_plat *plat = dev_get_plat(dev);
 
 	return sdhci_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/stm32_sdmmc2.c b/drivers/mmc/stm32_sdmmc2.c
index df5bb78..76a6a07 100644
--- a/drivers/mmc/stm32_sdmmc2.c
+++ b/drivers/mmc/stm32_sdmmc2.c
@@ -644,7 +644,7 @@
 static int stm32_sdmmc2_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct stm32_sdmmc2_plat *plat = dev_get_platdata(dev);
+	struct stm32_sdmmc2_plat *plat = dev_get_plat(dev);
 	struct stm32_sdmmc2_priv *priv = dev_get_priv(dev);
 	struct mmc_config *cfg = &plat->cfg;
 	int ret;
@@ -700,7 +700,7 @@
 
 static int stm32_sdmmc_bind(struct udevice *dev)
 {
-	struct stm32_sdmmc2_plat *plat = dev_get_platdata(dev);
+	struct stm32_sdmmc2_plat *plat = dev_get_plat(dev);
 
 	return mmc_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/sunxi_mmc.c b/drivers/mmc/sunxi_mmc.c
index 7490e86..b33f80b 100644
--- a/drivers/mmc/sunxi_mmc.c
+++ b/drivers/mmc/sunxi_mmc.c
@@ -572,7 +572,7 @@
 
 static int sunxi_mmc_set_ios(struct udevice *dev)
 {
-	struct sunxi_mmc_plat *plat = dev_get_platdata(dev);
+	struct sunxi_mmc_plat *plat = dev_get_plat(dev);
 	struct sunxi_mmc_priv *priv = dev_get_priv(dev);
 
 	return sunxi_mmc_set_ios_common(priv, &plat->mmc);
@@ -581,7 +581,7 @@
 static int sunxi_mmc_send_cmd(struct udevice *dev, struct mmc_cmd *cmd,
 			      struct mmc_data *data)
 {
-	struct sunxi_mmc_plat *plat = dev_get_platdata(dev);
+	struct sunxi_mmc_plat *plat = dev_get_plat(dev);
 	struct sunxi_mmc_priv *priv = dev_get_priv(dev);
 
 	return sunxi_mmc_send_cmd_common(priv, &plat->mmc, cmd, data);
@@ -608,7 +608,7 @@
 static int sunxi_mmc_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct sunxi_mmc_plat *plat = dev_get_platdata(dev);
+	struct sunxi_mmc_plat *plat = dev_get_plat(dev);
 	struct sunxi_mmc_priv *priv = dev_get_priv(dev);
 	struct reset_ctl_bulk reset_bulk;
 	struct clk gate_clk;
@@ -682,7 +682,7 @@
 
 static int sunxi_mmc_bind(struct udevice *dev)
 {
-	struct sunxi_mmc_plat *plat = dev_get_platdata(dev);
+	struct sunxi_mmc_plat *plat = dev_get_plat(dev);
 
 	return mmc_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/tangier_sdhci.c b/drivers/mmc/tangier_sdhci.c
index 1a2a0ff..1156427 100644
--- a/drivers/mmc/tangier_sdhci.c
+++ b/drivers/mmc/tangier_sdhci.c
@@ -22,7 +22,7 @@
 
 static int sdhci_tangier_bind(struct udevice *dev)
 {
-	struct sdhci_tangier_plat *plat = dev_get_platdata(dev);
+	struct sdhci_tangier_plat *plat = dev_get_plat(dev);
 
 	return sdhci_bind(dev, &plat->mmc, &plat->cfg);
 }
@@ -30,7 +30,7 @@
 static int sdhci_tangier_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct sdhci_tangier_plat *plat = dev_get_platdata(dev);
+	struct sdhci_tangier_plat *plat = dev_get_plat(dev);
 	struct sdhci_host *host = dev_get_priv(dev);
 	fdt_addr_t base;
 	int ret;
diff --git a/drivers/mmc/tegra_mmc.c b/drivers/mmc/tegra_mmc.c
index 8a32156..760eca4 100644
--- a/drivers/mmc/tegra_mmc.c
+++ b/drivers/mmc/tegra_mmc.c
@@ -680,7 +680,7 @@
 static int tegra_mmc_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
-	struct tegra_mmc_plat *plat = dev_get_platdata(dev);
+	struct tegra_mmc_plat *plat = dev_get_plat(dev);
 	struct tegra_mmc_priv *priv = dev_get_priv(dev);
 	struct mmc_config *cfg = &plat->cfg;
 	int bus_width, ret;
@@ -749,7 +749,7 @@
 
 static int tegra_mmc_bind(struct udevice *dev)
 {
-	struct tegra_mmc_plat *plat = dev_get_platdata(dev);
+	struct tegra_mmc_plat *plat = dev_get_plat(dev);
 
 	return mmc_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/tmio-common.c b/drivers/mmc/tmio-common.c
index c653973..2c52868 100644
--- a/drivers/mmc/tmio-common.c
+++ b/drivers/mmc/tmio-common.c
@@ -708,14 +708,14 @@
 
 int tmio_sd_bind(struct udevice *dev)
 {
-	struct tmio_sd_plat *plat = dev_get_platdata(dev);
+	struct tmio_sd_plat *plat = dev_get_plat(dev);
 
 	return mmc_bind(dev, &plat->mmc, &plat->cfg);
 }
 
 int tmio_sd_probe(struct udevice *dev, u32 quirks)
 {
-	struct tmio_sd_plat *plat = dev_get_platdata(dev);
+	struct tmio_sd_plat *plat = dev_get_plat(dev);
 	struct tmio_sd_priv *priv = dev_get_priv(dev);
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	fdt_addr_t base;
diff --git a/drivers/mmc/xenon_sdhci.c b/drivers/mmc/xenon_sdhci.c
index 9925513..5062397 100644
--- a/drivers/mmc/xenon_sdhci.c
+++ b/drivers/mmc/xenon_sdhci.c
@@ -442,7 +442,7 @@
 
 static int xenon_sdhci_probe(struct udevice *dev)
 {
-	struct xenon_sdhci_plat *plat = dev_get_platdata(dev);
+	struct xenon_sdhci_plat *plat = dev_get_plat(dev);
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	struct xenon_sdhci_priv *priv = dev_get_priv(dev);
 	struct sdhci_host *host = dev_get_priv(dev);
@@ -545,7 +545,7 @@
 
 static int xenon_sdhci_bind(struct udevice *dev)
 {
-	struct xenon_sdhci_plat *plat = dev_get_platdata(dev);
+	struct xenon_sdhci_plat *plat = dev_get_plat(dev);
 
 	return sdhci_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mmc/zynq_sdhci.c b/drivers/mmc/zynq_sdhci.c
index 919e5d7..29850a4 100644
--- a/drivers/mmc/zynq_sdhci.c
+++ b/drivers/mmc/zynq_sdhci.c
@@ -552,7 +552,7 @@
 
 static int arasan_sdhci_probe(struct udevice *dev)
 {
-	struct arasan_sdhci_plat *plat = dev_get_platdata(dev);
+	struct arasan_sdhci_plat *plat = dev_get_plat(dev);
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	struct arasan_sdhci_priv *priv = dev_get_priv(dev);
 	struct sdhci_host *host;
@@ -641,7 +641,7 @@
 
 static int arasan_sdhci_bind(struct udevice *dev)
 {
-	struct arasan_sdhci_plat *plat = dev_get_platdata(dev);
+	struct arasan_sdhci_plat *plat = dev_get_plat(dev);
 
 	return sdhci_bind(dev, &plat->mmc, &plat->cfg);
 }
diff --git a/drivers/mtd/altera_qspi.c b/drivers/mtd/altera_qspi.c
index 82d4117..9a3a21f 100644
--- a/drivers/mtd/altera_qspi.c
+++ b/drivers/mtd/altera_qspi.c
@@ -106,7 +106,7 @@
 {
 	struct mtd_info *mtd = info->mtd;
 	struct udevice *dev = mtd->dev;
-	struct altera_qspi_platdata *pdata = dev_get_platdata(dev);
+	struct altera_qspi_platdata *pdata = dev_get_plat(dev);
 	ulong base = (ulong)pdata->base;
 	loff_t to = addr - base;
 	size_t retlen;
@@ -135,7 +135,7 @@
 static int altera_qspi_erase(struct mtd_info *mtd, struct erase_info *instr)
 {
 	struct udevice *dev = mtd->dev;
-	struct altera_qspi_platdata *pdata = dev_get_platdata(dev);
+	struct altera_qspi_platdata *pdata = dev_get_plat(dev);
 	struct altera_qspi_regs *regs = pdata->regs;
 	size_t addr = instr->addr;
 	size_t len = instr->len;
@@ -197,7 +197,7 @@
 			    size_t *retlen, u_char *buf)
 {
 	struct udevice *dev = mtd->dev;
-	struct altera_qspi_platdata *pdata = dev_get_platdata(dev);
+	struct altera_qspi_platdata *pdata = dev_get_plat(dev);
 
 	memcpy_fromio(buf, pdata->base + from, len);
 	*retlen = len;
@@ -209,7 +209,7 @@
 			     size_t *retlen, const u_char *buf)
 {
 	struct udevice *dev = mtd->dev;
-	struct altera_qspi_platdata *pdata = dev_get_platdata(dev);
+	struct altera_qspi_platdata *pdata = dev_get_plat(dev);
 	struct altera_qspi_regs *regs = pdata->regs;
 	u32 stat;
 
@@ -235,7 +235,7 @@
 					 uint64_t *len)
 {
 	struct udevice *dev = mtd->dev;
-	struct altera_qspi_platdata *pdata = dev_get_platdata(dev);
+	struct altera_qspi_platdata *pdata = dev_get_plat(dev);
 	struct altera_qspi_regs *regs = pdata->regs;
 	int shift0 = ffs(QUADSPI_SR_BP2_0) - 1;
 	int shift3 = ffs(QUADSPI_SR_BP3) - 1 - 3;
@@ -257,7 +257,7 @@
 static int altera_qspi_lock(struct mtd_info *mtd, loff_t ofs, uint64_t len)
 {
 	struct udevice *dev = mtd->dev;
-	struct altera_qspi_platdata *pdata = dev_get_platdata(dev);
+	struct altera_qspi_platdata *pdata = dev_get_plat(dev);
 	struct altera_qspi_regs *regs = pdata->regs;
 	u32 sector_start, sector_end;
 	u32 num_sectors;
@@ -291,7 +291,7 @@
 static int altera_qspi_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len)
 {
 	struct udevice *dev = mtd->dev;
-	struct altera_qspi_platdata *pdata = dev_get_platdata(dev);
+	struct altera_qspi_platdata *pdata = dev_get_plat(dev);
 	struct altera_qspi_regs *regs = pdata->regs;
 	u32 mem_op;
 
@@ -304,7 +304,7 @@
 
 static int altera_qspi_probe(struct udevice *dev)
 {
-	struct altera_qspi_platdata *pdata = dev_get_platdata(dev);
+	struct altera_qspi_platdata *pdata = dev_get_plat(dev);
 	struct altera_qspi_regs *regs = pdata->regs;
 	unsigned long base = (unsigned long)pdata->base;
 	struct mtd_info *mtd;
@@ -348,7 +348,7 @@
 
 static int altera_qspi_ofdata_to_platdata(struct udevice *dev)
 {
-	struct altera_qspi_platdata *pdata = dev_get_platdata(dev);
+	struct altera_qspi_platdata *pdata = dev_get_plat(dev);
 	void *blob = (void *)gd->fdt_blob;
 	int node = dev_of_offset(dev);
 	const char *list, *end;
diff --git a/drivers/mtd/spi/sandbox.c b/drivers/mtd/spi/sandbox.c
index 26d0dbc..b3a0de6 100644
--- a/drivers/mtd/spi/sandbox.c
+++ b/drivers/mtd/spi/sandbox.c
@@ -122,7 +122,7 @@
 	struct sandbox_spi_flash *sbsf = dev_get_priv(dev);
 	size_t len, idname_len;
 	const struct flash_info *data;
-	struct sandbox_spi_flash_plat_data *pdata = dev_get_platdata(dev);
+	struct sandbox_spi_flash_plat_data *pdata = dev_get_plat(dev);
 	struct sandbox_state *state = state_get_current();
 	struct dm_spi_slave_platdata *slave_plat;
 	struct udevice *bus = dev->parent;
@@ -500,7 +500,7 @@
 
 int sandbox_sf_ofdata_to_platdata(struct udevice *dev)
 {
-	struct sandbox_spi_flash_plat_data *pdata = dev_get_platdata(dev);
+	struct sandbox_spi_flash_plat_data *pdata = dev_get_plat(dev);
 
 	pdata->filename = dev_read_string(dev, "sandbox,filename");
 	pdata->device_name = dev_read_string(dev, "compatible");
diff --git a/drivers/net/ag7xxx.c b/drivers/net/ag7xxx.c
index adcc207..5176efa 100644
--- a/drivers/net/ag7xxx.c
+++ b/drivers/net/ag7xxx.c
@@ -588,7 +588,7 @@
  */
 static int ag7xxx_eth_write_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct ar7xxx_eth_priv *priv = dev_get_priv(dev);
 	unsigned char *mac = pdata->enetaddr;
 	u32 macid_lo, macid_hi;
@@ -1197,7 +1197,7 @@
 
 static int ag7xxx_eth_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct ar7xxx_eth_priv *priv = dev_get_priv(dev);
 	void __iomem *iobase, *phyiobase;
 	int ret, phyreg;
@@ -1252,7 +1252,7 @@
 
 static int ag7xxx_eth_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	const char *phy_mode;
 	int ret;
 
diff --git a/drivers/net/altera_tse.c b/drivers/net/altera_tse.c
index becc6a6..b7ed694 100644
--- a/drivers/net/altera_tse.c
+++ b/drivers/net/altera_tse.c
@@ -453,7 +453,7 @@
 {
 	struct altera_tse_priv *priv = dev_get_priv(dev);
 	struct alt_tse_mac *mac_dev = priv->mac_dev;
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	u8 *hwaddr = pdata->enetaddr;
 	u32 mac_lo, mac_hi;
 
@@ -575,7 +575,7 @@
 
 static int altera_tse_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct altera_tse_priv *priv = dev_get_priv(dev);
 	void *blob = (void *)gd->fdt_blob;
 	int node = dev_of_offset(dev);
@@ -674,7 +674,7 @@
 
 static int altera_tse_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	const char *phy_mode;
 
 	pdata->phy_interface = -1;
diff --git a/drivers/net/bcm6348-eth.c b/drivers/net/bcm6348-eth.c
index 7c79e9a..aad7b61 100644
--- a/drivers/net/bcm6348-eth.c
+++ b/drivers/net/bcm6348-eth.c
@@ -264,7 +264,7 @@
 
 static int bcm6348_eth_write_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct bcm6348_eth_priv *priv = dev_get_priv(dev);
 	bool running = false;
 
@@ -380,7 +380,7 @@
 
 static int bcm6348_phy_init(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct bcm6348_eth_priv *priv = dev_get_priv(dev);
 	struct mii_dev *bus;
 
@@ -412,7 +412,7 @@
 
 static int bcm6348_eth_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct bcm6348_eth_priv *priv = dev_get_priv(dev);
 	struct ofnode_phandle_args phy;
 	const char *phy_mode;
diff --git a/drivers/net/bcm6368-eth.c b/drivers/net/bcm6368-eth.c
index 6e6548a..29abe7f 100644
--- a/drivers/net/bcm6368-eth.c
+++ b/drivers/net/bcm6368-eth.c
@@ -506,7 +506,7 @@
 
 static int bcm6368_eth_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct bcm6368_eth_priv *priv = dev_get_priv(dev);
 	int num_ports, ret, i;
 	ofnode node;
diff --git a/drivers/net/bcmgenet.c b/drivers/net/bcmgenet.c
index 9fcb28a..1627e93 100644
--- a/drivers/net/bcmgenet.c
+++ b/drivers/net/bcmgenet.c
@@ -236,7 +236,7 @@
 static int bcmgenet_gmac_write_hwaddr(struct udevice *dev)
 {
 	struct bcmgenet_eth_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	uchar *addr = pdata->enetaddr;
 	u32 reg;
 
@@ -619,7 +619,7 @@
 
 static int bcmgenet_eth_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct bcmgenet_eth_priv *priv = dev_get_priv(dev);
 	ofnode mdio_node;
 	const char *name;
@@ -687,7 +687,7 @@
 
 static int bcmgenet_eth_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct bcmgenet_eth_priv *priv = dev_get_priv(dev);
 	struct ofnode_phandle_args phy_node;
 	const char *phy_mode;
diff --git a/drivers/net/dc2114x.c b/drivers/net/dc2114x.c
index 66d1618..deedfe7 100644
--- a/drivers/net/dc2114x.c
+++ b/drivers/net/dc2114x.c
@@ -625,7 +625,7 @@
 #else	/* DM_ETH */
 static int dc2114x_start(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct dc2114x_priv *priv = dev_get_priv(dev);
 
 	memcpy(priv->enetaddr, plat->enetaddr, sizeof(plat->enetaddr));
@@ -709,7 +709,7 @@
 
 static int dc2114x_probe(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct dc2114x_priv *priv = dev_get_priv(dev);
 	u16 command, status;
 	u32 iobase;
diff --git a/drivers/net/designware.c b/drivers/net/designware.c
index 83b31fa..c0e5c0b 100644
--- a/drivers/net/designware.c
+++ b/drivers/net/designware.c
@@ -93,7 +93,7 @@
 {
 	struct udevice *dev = bus->priv;
 	struct dw_eth_dev *priv = dev_get_priv(dev);
-	struct dw_eth_pdata *pdata = dev_get_platdata(dev);
+	struct dw_eth_pdata *pdata = dev_get_plat(dev);
 	int ret;
 
 	if (!dm_gpio_is_valid(&priv->reset_gpio))
@@ -610,7 +610,7 @@
 #ifdef CONFIG_DM_ETH
 static int designware_eth_start(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct dw_eth_dev *priv = dev_get_priv(dev);
 	int ret;
 
@@ -654,7 +654,7 @@
 
 int designware_eth_write_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct dw_eth_dev *priv = dev_get_priv(dev);
 
 	return _dw_write_hwaddr(priv, pdata->enetaddr);
@@ -678,7 +678,7 @@
 
 int designware_eth_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct dw_eth_dev *priv = dev_get_priv(dev);
 	u32 iobase = pdata->iobase;
 	ulong ioaddr;
@@ -813,7 +813,7 @@
 
 int designware_eth_ofdata_to_platdata(struct udevice *dev)
 {
-	struct dw_eth_pdata *dw_pdata = dev_get_platdata(dev);
+	struct dw_eth_pdata *dw_pdata = dev_get_plat(dev);
 #if CONFIG_IS_ENABLED(DM_GPIO)
 	struct dw_eth_dev *priv = dev_get_priv(dev);
 #endif
diff --git a/drivers/net/dwc_eth_qos.c b/drivers/net/dwc_eth_qos.c
index 018cbfd..1569c5b 100644
--- a/drivers/net/dwc_eth_qos.c
+++ b/drivers/net/dwc_eth_qos.c
@@ -1108,7 +1108,7 @@
 
 static int eqos_write_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct eqos_priv *eqos = dev_get_priv(dev);
 	uint32_t val;
 
@@ -1152,7 +1152,7 @@
 
 static int eqos_read_rom_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 #ifdef CONFIG_ARCH_IMX8M
 	imx_get_mac_from_fuse(dev->req_seq, pdata->enetaddr);
diff --git a/drivers/net/dwmac_socfpga.c b/drivers/net/dwmac_socfpga.c
index ebbbcac..a3cd4d5 100644
--- a/drivers/net/dwmac_socfpga.c
+++ b/drivers/net/dwmac_socfpga.c
@@ -27,7 +27,7 @@
 
 static int dwmac_socfpga_ofdata_to_platdata(struct udevice *dev)
 {
-	struct dwmac_socfpga_platdata *pdata = dev_get_platdata(dev);
+	struct dwmac_socfpga_platdata *pdata = dev_get_plat(dev);
 	struct regmap *regmap;
 	struct ofnode_phandle_args args;
 	void *range;
@@ -66,7 +66,7 @@
 
 static int dwmac_socfpga_probe(struct udevice *dev)
 {
-	struct dwmac_socfpga_platdata *pdata = dev_get_platdata(dev);
+	struct dwmac_socfpga_platdata *pdata = dev_get_plat(dev);
 	struct eth_pdata *edata = &pdata->dw_eth_pdata.eth_pdata;
 	struct reset_ctl_bulk reset_bulk;
 	int ret;
diff --git a/drivers/net/e1000.c b/drivers/net/e1000.c
index 49e6be3..3b3dd10 100644
--- a/drivers/net/e1000.c
+++ b/drivers/net/e1000.c
@@ -5795,7 +5795,7 @@
 	e1000_name(name, cardnum);
 	ret = uclass_get_device_by_name(UCLASS_ETH, name, &dev);
 	if (!ret) {
-		plat = dev_get_platdata(dev);
+		plat = dev_get_plat(dev);
 		mac = plat->enetaddr;
 	}
 #else
@@ -5844,7 +5844,7 @@
 #ifdef CONFIG_DM_ETH
 static int e1000_eth_start(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct e1000_hw *hw = dev_get_priv(dev);
 
 	return _e1000_init(hw, plat->enetaddr);
@@ -5890,7 +5890,7 @@
 
 static int e1000_eth_probe(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct e1000_hw *hw = dev_get_priv(dev);
 	int ret;
 
diff --git a/drivers/net/eepro100.c b/drivers/net/eepro100.c
index f47caf1..934b881 100644
--- a/drivers/net/eepro100.c
+++ b/drivers/net/eepro100.c
@@ -900,7 +900,7 @@
 #else	/* DM_ETH */
 static int eepro100_start(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct eepro100_priv *priv = dev_get_priv(dev);
 
 	memcpy(priv->enetaddr, plat->enetaddr, sizeof(plat->enetaddr));
@@ -962,7 +962,7 @@
 
 static int eepro100_probe(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct eepro100_priv *priv = dev_get_priv(dev);
 	u16 command, status;
 	u32 iobase;
diff --git a/drivers/net/ethoc.c b/drivers/net/ethoc.c
index 640db11..53c2d23 100644
--- a/drivers/net/ethoc.c
+++ b/drivers/net/ethoc.c
@@ -647,7 +647,7 @@
 
 static int ethoc_write_hwaddr(struct udevice *dev)
 {
-	struct ethoc_eth_pdata *pdata = dev_get_platdata(dev);
+	struct ethoc_eth_pdata *pdata = dev_get_plat(dev);
 	struct ethoc *priv = dev_get_priv(dev);
 	u8 *mac = pdata->eth_pdata.enetaddr;
 
@@ -687,7 +687,7 @@
 
 static int ethoc_ofdata_to_platdata(struct udevice *dev)
 {
-	struct ethoc_eth_pdata *pdata = dev_get_platdata(dev);
+	struct ethoc_eth_pdata *pdata = dev_get_plat(dev);
 	fdt_addr_t addr;
 
 	pdata->eth_pdata.iobase = dev_read_addr(dev);
@@ -699,7 +699,7 @@
 
 static int ethoc_probe(struct udevice *dev)
 {
-	struct ethoc_eth_pdata *pdata = dev_get_platdata(dev);
+	struct ethoc_eth_pdata *pdata = dev_get_plat(dev);
 	struct ethoc *priv = dev_get_priv(dev);
 
 	priv->iobase = ioremap(pdata->eth_pdata.iobase, ETHOC_IOSIZE);
diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c
index e3d6c8e..88ee176 100644
--- a/drivers/net/fec_mxc.c
+++ b/drivers/net/fec_mxc.c
@@ -415,7 +415,7 @@
 {
 #ifdef CONFIG_DM_ETH
 	struct fec_priv *fec = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	uchar *mac = pdata->enetaddr;
 #else
 	uchar *mac = dev->enetaddr;
@@ -1272,7 +1272,7 @@
 static int fecmxc_read_rom_hwaddr(struct udevice *dev)
 {
 	struct fec_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	return fec_get_hwaddr(priv->dev_id, pdata->enetaddr);
 }
@@ -1351,7 +1351,7 @@
 
 static int fecmxc_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct fec_priv *priv = dev_get_priv(dev);
 	struct mii_dev *bus = NULL;
 	uint32_t start;
@@ -1530,7 +1530,7 @@
 static int fecmxc_ofdata_to_platdata(struct udevice *dev)
 {
 	int ret = 0;
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct fec_priv *priv = dev_get_priv(dev);
 	const char *phy_mode;
 
diff --git a/drivers/net/fm/eth.c b/drivers/net/fm/eth.c
index f5fb513..02ccf1e 100644
--- a/drivers/net/fm/eth.c
+++ b/drivers/net/fm/eth.c
@@ -472,7 +472,7 @@
 #ifndef CONFIG_DM_ETH
 	struct fm_eth *fm_eth = dev->priv;
 #else
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct fm_eth *fm_eth = dev_get_priv(dev);
 #endif
 	unsigned char *enetaddr;
diff --git a/drivers/net/fsl-mc/mc.c b/drivers/net/fsl-mc/mc.c
index 84db6be..4b0c0ed 100644
--- a/drivers/net/fsl-mc/mc.c
+++ b/drivers/net/fsl-mc/mc.c
@@ -185,7 +185,7 @@
 			     enum mc_fixup_type type)
 {
 #ifdef CONFIG_DM_ETH
-	struct eth_pdata *plat = dev_get_platdata(eth_dev);
+	struct eth_pdata *plat = dev_get_plat(eth_dev);
 	unsigned char *enetaddr = plat->enetaddr;
 	int eth_index = eth_dev->seq;
 #else
diff --git a/drivers/net/fsl_enetc.c b/drivers/net/fsl_enetc.c
index e988fb0..765385c 100644
--- a/drivers/net/fsl_enetc.c
+++ b/drivers/net/fsl_enetc.c
@@ -68,7 +68,7 @@
 		    strcmp(dev->driver->name, ENETC_DRIVER_NAME))
 			continue;
 
-		pdata = dev_get_platdata(dev);
+		pdata = dev_get_plat(dev);
 		ppdata = dev_get_parent_plat(dev);
 		devfn = PCI_FUNC(ppdata->devfn);
 
@@ -367,7 +367,7 @@
 {
 	struct pci_child_platdata *ppdata = dev_get_parent_plat(dev);
 	const int devfn_to_pf[] = {0, 1, 2, -1, -1, -1, 3};
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	int devfn = PCI_FUNC(ppdata->devfn);
 	u8 *addr = plat->enetaddr;
 	u32 lower, upper;
@@ -391,7 +391,7 @@
 
 static int enetc_write_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct enetc_priv *priv = dev_get_priv(dev);
 	u8 *addr = plat->enetaddr;
 
diff --git a/drivers/net/fsl_mcdmafec.c b/drivers/net/fsl_mcdmafec.c
index 6ab27e2..b5610d3 100644
--- a/drivers/net/fsl_mcdmafec.c
+++ b/drivers/net/fsl_mcdmafec.c
@@ -497,7 +497,7 @@
 static int mcdmafec_probe(struct udevice *dev)
 {
 	struct fec_info_dma *info = dev->priv;
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	int node = dev_of_offset(dev);
 	int retval;
 	const u32 *val;
@@ -567,7 +567,7 @@
  */
 static int mcdmafec_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	const u32 *val;
 
 	pdata->iobase = dev_read_addr(dev);
diff --git a/drivers/net/ftgmac100.c b/drivers/net/ftgmac100.c
index dd696f3..b462410 100644
--- a/drivers/net/ftgmac100.c
+++ b/drivers/net/ftgmac100.c
@@ -287,7 +287,7 @@
 
 static int ftgmac100_start(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct ftgmac100_data *priv = dev_get_priv(dev);
 	struct ftgmac100 *ftgmac100 = priv->iobase;
 	struct phy_device *phydev = priv->phydev;
@@ -505,7 +505,7 @@
 
 static int ftgmac100_write_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct ftgmac100_data *priv = dev_get_priv(dev);
 
 	return ftgmac100_set_mac(priv, pdata->enetaddr);
@@ -513,7 +513,7 @@
 
 static int ftgmac100_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct ftgmac100_data *priv = dev_get_priv(dev);
 	const char *phy_mode;
 
@@ -542,7 +542,7 @@
 
 static int ftgmac100_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct ftgmac100_data *priv = dev_get_priv(dev);
 	int ret;
 
diff --git a/drivers/net/ftmac100.c b/drivers/net/ftmac100.c
index de7ec4d..5c2887e 100644
--- a/drivers/net/ftmac100.c
+++ b/drivers/net/ftmac100.c
@@ -318,7 +318,7 @@
 #ifdef CONFIG_DM_ETH
 static int ftmac100_start(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct ftmac100_data *priv = dev_get_priv(dev);
 
 	return _ftmac100_init(priv, plat->enetaddr);
@@ -360,7 +360,7 @@
 
 int ftmac100_read_rom_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	eth_env_get_enetaddr("ethaddr", pdata->enetaddr);
 	return 0;
 }
@@ -396,7 +396,7 @@
 static int ftmac100_ofdata_to_platdata(struct udevice *dev)
 {
 	struct ftmac100_data *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	const char *mac;
 	pdata->iobase = dev_read_addr(dev);
 	priv->iobase = pdata->iobase;
diff --git a/drivers/net/gmac_rockchip.c b/drivers/net/gmac_rockchip.c
index 0bd1da5..2d94223 100644
--- a/drivers/net/gmac_rockchip.c
+++ b/drivers/net/gmac_rockchip.c
@@ -55,7 +55,7 @@
 
 static int gmac_rockchip_ofdata_to_platdata(struct udevice *dev)
 {
-	struct gmac_rockchip_platdata *pdata = dev_get_platdata(dev);
+	struct gmac_rockchip_platdata *pdata = dev_get_plat(dev);
 	const char *string;
 
 	string = dev_read_string(dev, "clock_in_out");
@@ -555,10 +555,10 @@
 
 static int gmac_rockchip_probe(struct udevice *dev)
 {
-	struct gmac_rockchip_platdata *pdata = dev_get_platdata(dev);
+	struct gmac_rockchip_platdata *pdata = dev_get_plat(dev);
 	struct rk_gmac_ops *ops =
 		(struct rk_gmac_ops *)dev_get_driver_data(dev);
-	struct dw_eth_pdata *dw_pdata = dev_get_platdata(dev);
+	struct dw_eth_pdata *dw_pdata = dev_get_plat(dev);
 	struct eth_pdata *eth_pdata = &dw_pdata->eth_pdata;
 	struct clk clk;
 	ulong rate;
@@ -664,7 +664,7 @@
 
 static int gmac_rockchip_eth_start(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct dw_eth_dev *priv = dev_get_priv(dev);
 	struct rk_gmac_ops *ops =
 		(struct rk_gmac_ops *)dev_get_driver_data(dev);
diff --git a/drivers/net/higmacv300.c b/drivers/net/higmacv300.c
index 208b167..1cc466f 100644
--- a/drivers/net/higmacv300.c
+++ b/drivers/net/higmacv300.c
@@ -128,7 +128,7 @@
 
 static int higmac_write_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct higmac_priv *priv = dev_get_priv(dev);
 	unsigned char *mac = pdata->enetaddr;
 	u32 val;
diff --git a/drivers/net/ks8851_mll.c b/drivers/net/ks8851_mll.c
index b0e6685..05ef1ab 100644
--- a/drivers/net/ks8851_mll.c
+++ b/drivers/net/ks8851_mll.c
@@ -615,7 +615,7 @@
 static int ks8851_write_hwaddr(struct udevice *dev)
 {
 	struct ks_net *ks = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	ks8851_mll_write_hwaddr_common(ks, pdata->enetaddr);
 
@@ -625,7 +625,7 @@
 static int ks8851_read_rom_hwaddr(struct udevice *dev)
 {
 	struct ks_net *ks = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	u16 addrl, addrm, addrh;
 
 	/* No EEPROM means no valid MAC address. */
@@ -668,7 +668,7 @@
 static int ks8851_ofdata_to_platdata(struct udevice *dev)
 {
 	struct ks_net *ks = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	pdata->iobase = dev_read_addr(dev);
 	ks->iobase = pdata->iobase;
diff --git a/drivers/net/ldpaa_eth/ldpaa_eth.c b/drivers/net/ldpaa_eth/ldpaa_eth.c
index 02935f6..cd2e4e0 100644
--- a/drivers/net/ldpaa_eth/ldpaa_eth.c
+++ b/drivers/net/ldpaa_eth/ldpaa_eth.c
@@ -511,7 +511,7 @@
 #ifdef CONFIG_DM_ETH
 static int ldpaa_eth_open(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct ldpaa_eth_priv *priv = dev_get_priv(dev);
 #else
 static int ldpaa_eth_open(struct eth_device *net_dev, struct bd_info *bd)
diff --git a/drivers/net/macb.c b/drivers/net/macb.c
index 4ad37fd..dd23591 100644
--- a/drivers/net/macb.c
+++ b/drivers/net/macb.c
@@ -1169,7 +1169,7 @@
 
 static int macb_write_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct macb_device *macb = dev_get_priv(dev);
 
 	return _macb_write_hwaddr(macb, plat->enetaddr);
@@ -1222,7 +1222,7 @@
 
 static int macb_eth_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct macb_device *macb = dev_get_priv(dev);
 	const char *phy_mode;
 	int ret;
@@ -1295,7 +1295,7 @@
 
 static int macb_eth_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	pdata->iobase = (phys_addr_t)dev_remap_addr(dev);
 	if (!pdata->iobase)
diff --git a/drivers/net/mcffec.c b/drivers/net/mcffec.c
index d0c5893..ca72888 100644
--- a/drivers/net/mcffec.c
+++ b/drivers/net/mcffec.c
@@ -518,7 +518,7 @@
  */
 static int mcffec_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct fec_info_s *info = dev->priv;
 	int node = dev_of_offset(dev);
 	int retval, fec_idx;
@@ -586,7 +586,7 @@
  */
 static int mcffec_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	const u32 *val;
 
 	pdata->iobase = dev_read_addr(dev);
diff --git a/drivers/net/mscc_eswitch/jr2_switch.c b/drivers/net/mscc_eswitch/jr2_switch.c
index f0ea6ea..128d7f2 100644
--- a/drivers/net/mscc_eswitch/jr2_switch.c
+++ b/drivers/net/mscc_eswitch/jr2_switch.c
@@ -726,7 +726,7 @@
 static int jr2_write_hwaddr(struct udevice *dev)
 {
 	struct jr2_private *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	return jr2_mac_table_add(priv, pdata->enetaddr, PGID_UNICAST);
 }
@@ -755,7 +755,7 @@
 static int jr2_start(struct udevice *dev)
 {
 	struct jr2_private *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	const unsigned char mac[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff,
 		0xff };
 	int ret;
diff --git a/drivers/net/mscc_eswitch/luton_switch.c b/drivers/net/mscc_eswitch/luton_switch.c
index 1dfd86a..54afa14 100644
--- a/drivers/net/mscc_eswitch/luton_switch.c
+++ b/drivers/net/mscc_eswitch/luton_switch.c
@@ -497,7 +497,7 @@
 static int luton_write_hwaddr(struct udevice *dev)
 {
 	struct luton_private *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	mscc_mac_table_add(priv->regs[ANA], luton_regs_ana_table,
 			   pdata->enetaddr, PGID_UNICAST);
@@ -510,7 +510,7 @@
 static int luton_start(struct udevice *dev)
 {
 	struct luton_private *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	const unsigned char mac[ETH_ALEN] = { 0xff, 0xff, 0xff, 0xff, 0xff,
 					      0xff };
 	int ret;
diff --git a/drivers/net/mscc_eswitch/ocelot_switch.c b/drivers/net/mscc_eswitch/ocelot_switch.c
index 18e11ec..19e725c 100644
--- a/drivers/net/mscc_eswitch/ocelot_switch.c
+++ b/drivers/net/mscc_eswitch/ocelot_switch.c
@@ -420,7 +420,7 @@
 static int ocelot_write_hwaddr(struct udevice *dev)
 {
 	struct ocelot_private *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	mscc_mac_table_add(priv->regs[ANA], ocelot_regs_ana_table,
 			   pdata->enetaddr, PGID_UNICAST);
@@ -433,7 +433,7 @@
 static int ocelot_start(struct udevice *dev)
 {
 	struct ocelot_private *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	const unsigned char mac[ETH_ALEN] = { 0xff, 0xff, 0xff, 0xff, 0xff,
 					      0xff };
 	int ret;
diff --git a/drivers/net/mscc_eswitch/serval_switch.c b/drivers/net/mscc_eswitch/serval_switch.c
index e274ee5..09ce334 100644
--- a/drivers/net/mscc_eswitch/serval_switch.c
+++ b/drivers/net/mscc_eswitch/serval_switch.c
@@ -373,7 +373,7 @@
 static int serval_write_hwaddr(struct udevice *dev)
 {
 	struct serval_private *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	mscc_mac_table_add(priv->regs[ANA], serval_regs_ana_table,
 			   pdata->enetaddr, PGID_UNICAST);
@@ -386,7 +386,7 @@
 static int serval_start(struct udevice *dev)
 {
 	struct serval_private *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	const unsigned char mac[ETH_ALEN] = { 0xff, 0xff, 0xff, 0xff, 0xff,
 					      0xff };
 	int ret;
diff --git a/drivers/net/mscc_eswitch/servalt_switch.c b/drivers/net/mscc_eswitch/servalt_switch.c
index 59c0d85..4a4e9e4 100644
--- a/drivers/net/mscc_eswitch/servalt_switch.c
+++ b/drivers/net/mscc_eswitch/servalt_switch.c
@@ -323,7 +323,7 @@
 static int servalt_write_hwaddr(struct udevice *dev)
 {
 	struct servalt_private *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	return servalt_mac_table_add(priv, pdata->enetaddr, PGID_UNICAST);
 }
@@ -331,7 +331,7 @@
 static int servalt_start(struct udevice *dev)
 {
 	struct servalt_private *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	const unsigned char mac[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff,
 		0xff };
 	int ret;
diff --git a/drivers/net/mt7628-eth.c b/drivers/net/mt7628-eth.c
index c94d3dd..50d066a 100644
--- a/drivers/net/mt7628-eth.c
+++ b/drivers/net/mt7628-eth.c
@@ -361,7 +361,7 @@
 {
 	struct mt7628_eth_dev *priv = dev_get_priv(dev);
 	void __iomem *base = priv->base;
-	u8 *addr = ((struct eth_pdata *)dev_get_platdata(dev))->enetaddr;
+	u8 *addr = ((struct eth_pdata *)dev_get_plat(dev))->enetaddr;
 	u32 val;
 
 	/* Set MAC address. */
diff --git a/drivers/net/mtk_eth.c b/drivers/net/mtk_eth.c
index 31e8547..2741439 100644
--- a/drivers/net/mtk_eth.c
+++ b/drivers/net/mtk_eth.c
@@ -1278,7 +1278,7 @@
 
 static int mtk_eth_write_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct mtk_eth_priv *priv = dev_get_priv(dev);
 	unsigned char *mac = pdata->enetaddr;
 	u32 macaddr_lsb, macaddr_msb;
@@ -1358,7 +1358,7 @@
 
 static int mtk_eth_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct mtk_eth_priv *priv = dev_get_priv(dev);
 	ulong iobase = pdata->iobase;
 	int ret;
@@ -1409,7 +1409,7 @@
 
 static int mtk_eth_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct mtk_eth_priv *priv = dev_get_priv(dev);
 	struct ofnode_phandle_args args;
 	struct regmap *regmap;
diff --git a/drivers/net/mvgbe.c b/drivers/net/mvgbe.c
index 0e4e88e..bf800a8 100644
--- a/drivers/net/mvgbe.c
+++ b/drivers/net/mvgbe.c
@@ -554,7 +554,7 @@
 #ifdef CONFIG_DM_ETH
 static int mvgbe_write_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	port_uc_addr_set(dev_get_priv(dev), pdata->enetaddr);
 
@@ -906,7 +906,7 @@
 
 static int mvgbe_start(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct mvgbe_device *dmvgbe = dev_get_priv(dev);
 	int ret;
 
@@ -948,7 +948,7 @@
 
 static int mvgbe_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct mvgbe_device *dmvgbe = dev_get_priv(dev);
 	struct mii_dev *bus;
 	int ret;
@@ -988,7 +988,7 @@
 
 static int mvgbe_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct mvgbe_device *dmvgbe = dev_get_priv(dev);
 	void *blob = (void *)gd->fdt_blob;
 	int node = dev_of_offset(dev);
diff --git a/drivers/net/mvneta.c b/drivers/net/mvneta.c
index 4c478b9..84426ef 100644
--- a/drivers/net/mvneta.c
+++ b/drivers/net/mvneta.c
@@ -896,7 +896,7 @@
 static int mvneta_write_hwaddr(struct udevice *dev)
 {
 	mvneta_mac_addr_set(dev_get_priv(dev),
-		((struct eth_pdata *)dev_get_platdata(dev))->enetaddr,
+		((struct eth_pdata *)dev_get_plat(dev))->enetaddr,
 		rxq_def);
 
 	return 0;
@@ -1397,7 +1397,7 @@
 /* Device initialization routine */
 static int mvneta_init(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct mvneta_port *pp = dev_get_priv(dev);
 	int err;
 
@@ -1690,7 +1690,7 @@
 
 static int mvneta_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct mvneta_port *pp = dev_get_priv(dev);
 	void *blob = (void *)gd->fdt_blob;
 	int node = dev_of_offset(dev);
@@ -1797,7 +1797,7 @@
 
 static int mvneta_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	const char *phy_mode;
 
 	pdata->iobase = dev_read_addr(dev);
diff --git a/drivers/net/mvpp2.c b/drivers/net/mvpp2.c
index 326f91c..d266e6d 100644
--- a/drivers/net/mvpp2.c
+++ b/drivers/net/mvpp2.c
@@ -5186,7 +5186,7 @@
 
 static int mvpp2_start(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct mvpp2_port *port = dev_get_priv(dev);
 
 	/* Load current MAC address */
diff --git a/drivers/net/octeontx/nicvf_main.c b/drivers/net/octeontx/nicvf_main.c
index 3b5ba26..750629a 100644
--- a/drivers/net/octeontx/nicvf_main.c
+++ b/drivers/net/octeontx/nicvf_main.c
@@ -105,7 +105,7 @@
 static void  nicvf_handle_mbx_intr(struct nicvf *nic)
 {
 	union nic_mbx mbx = {};
-	struct eth_pdata *pdata = dev_get_platdata(nic->dev);
+	struct eth_pdata *pdata = dev_get_plat(nic->dev);
 	u64 *mbx_data;
 	u64 mbx_addr;
 	int i;
@@ -165,7 +165,7 @@
 static int nicvf_hw_set_mac_addr(struct nicvf *nic, struct udevice *dev)
 {
 	union nic_mbx mbx = {};
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	mbx.mac.msg = NIC_MBOX_MSG_SET_MAC;
 	mbx.mac.vf_id = nic->vf_id;
@@ -445,7 +445,7 @@
 int nicvf_write_hwaddr(struct udevice *dev)
 {
 	unsigned char ethaddr[ARP_HLEN];
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct nicvf *nic = dev_get_priv(dev);
 
 	/* If lower level firmware fails to set proper MAC
@@ -484,7 +484,7 @@
 int nicvf_initialize(struct udevice *dev)
 {
 	struct nicvf *nicvf = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	int    ret = 0, bgx, lmac;
 	char   name[16];
 	unsigned char ethaddr[ARP_HLEN];
diff --git a/drivers/net/octeontx2/nix.c b/drivers/net/octeontx2/nix.c
index 0a3e8e4..9649b39 100644
--- a/drivers/net/octeontx2/nix.c
+++ b/drivers/net/octeontx2/nix.c
@@ -727,7 +727,7 @@
 {
 	struct rvu_pf *rvu = dev_get_priv(dev);
 	struct nix *nix = rvu->nix;
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	/* If lower level firmware fails to set proper MAC
 	 * u-boot framework updates MAC to random address.
diff --git a/drivers/net/octeontx2/rvu_pf.c b/drivers/net/octeontx2/rvu_pf.c
index 246fca2..d74a196 100644
--- a/drivers/net/octeontx2/rvu_pf.c
+++ b/drivers/net/octeontx2/rvu_pf.c
@@ -20,7 +20,7 @@
 int rvu_pf_init(struct rvu_pf *rvu)
 {
 	struct nix *nix;
-	struct eth_pdata *pdata = dev_get_platdata(rvu->dev);
+	struct eth_pdata *pdata = dev_get_plat(rvu->dev);
 
 	debug("%s: Allocating nix lf\n", __func__);
 	nix = nix_lf_alloc(rvu->dev);
diff --git a/drivers/net/pch_gbe.c b/drivers/net/pch_gbe.c
index 3829ccc..fabcf85 100644
--- a/drivers/net/pch_gbe.c
+++ b/drivers/net/pch_gbe.c
@@ -68,7 +68,7 @@
 static int pch_gbe_reset(struct udevice *dev)
 {
 	struct pch_gbe_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct pch_gbe_regs *mac_regs = priv->mac_regs;
 	ulong start;
 
@@ -412,7 +412,7 @@
 static int pch_gbe_phy_init(struct udevice *dev)
 {
 	struct pch_gbe_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct phy_device *phydev;
 	int mask = 0xffffffff;
 
@@ -436,7 +436,7 @@
 static int pch_gbe_probe(struct udevice *dev)
 {
 	struct pch_gbe_priv *priv;
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	void *iobase;
 	int err;
 
diff --git a/drivers/net/pcnet.c b/drivers/net/pcnet.c
index ff9506f..59ef104 100644
--- a/drivers/net/pcnet.c
+++ b/drivers/net/pcnet.c
@@ -585,7 +585,7 @@
 #else /* DM_ETH */
 static int pcnet_start(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct pcnet_priv *priv = dev_get_priv(dev);
 
 	memcpy(priv->enetaddr, plat->enetaddr, sizeof(plat->enetaddr));
@@ -638,7 +638,7 @@
 
 static int pcnet_probe(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct pcnet_priv *lp = dev_get_priv(dev);
 	u16 command, status;
 	u32 iobase;
diff --git a/drivers/net/pfe_eth/pfe_eth.c b/drivers/net/pfe_eth/pfe_eth.c
index 53a08df..3d14571 100644
--- a/drivers/net/pfe_eth/pfe_eth.c
+++ b/drivers/net/pfe_eth/pfe_eth.c
@@ -87,7 +87,7 @@
 {
 	struct pfe_eth_dev *priv = dev_get_priv(dev);
 	struct gemac_s *gem = priv->gem;
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	uchar *mac = pdata->enetaddr;
 
 	writel((mac[0] << 24) + (mac[1] << 16) + (mac[2] << 8) + mac[3],
@@ -215,7 +215,7 @@
 {
 	struct pfe_eth_dev *priv = dev_get_priv(dev);
 	struct pfe_ddr_address pfe_addr;
-	struct pfe_eth_pdata *pdata = dev_get_platdata(dev);
+	struct pfe_eth_pdata *pdata = dev_get_plat(dev);
 	int ret = 0;
 	static int init_done;
 
@@ -266,7 +266,7 @@
 
 static int pfe_eth_bind(struct udevice *dev)
 {
-	struct pfe_eth_pdata *pdata = dev_get_platdata(dev);
+	struct pfe_eth_pdata *pdata = dev_get_plat(dev);
 	char name[20];
 
 	sprintf(name, "pfe_eth%u", pdata->pfe_eth_pdata_mac.phy_interface);
diff --git a/drivers/net/pic32_eth.c b/drivers/net/pic32_eth.c
index 94c296e..9eba55a 100644
--- a/drivers/net/pic32_eth.c
+++ b/drivers/net/pic32_eth.c
@@ -326,7 +326,7 @@
 
 static int pic32_eth_start(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct pic32eth_dev *priv = dev_get_priv(dev);
 
 	/* controller */
@@ -531,7 +531,7 @@
 
 static int pic32_eth_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct pic32eth_dev *priv = dev_get_priv(dev);
 	const char *phy_mode;
 	void __iomem *iobase;
diff --git a/drivers/net/qe/dm_qe_uec.c b/drivers/net/qe/dm_qe_uec.c
index b4052c7..372926e 100644
--- a/drivers/net/qe/dm_qe_uec.c
+++ b/drivers/net/qe/dm_qe_uec.c
@@ -416,7 +416,7 @@
 static int qe_uec_set_hwaddr(struct udevice *dev)
 {
 	struct qe_uec_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct uec_priv *uec = priv->uec;
 	uec_t *uec_regs = uec->uec_regs;
 	uchar *mac = pdata->enetaddr;
@@ -982,7 +982,7 @@
 static int qe_uec_set_uec_info(struct udevice *dev)
 {
 	struct qe_uec_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct uec_priv *uec = priv->uec;
 	struct uec_inf *uec_info;
 	struct ucc_fast_inf *uf_info;
@@ -1086,7 +1086,7 @@
 static int qe_uec_probe(struct udevice *dev)
 {
 	struct qe_uec_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct uec_priv		*uec;
 	int ret;
 
@@ -1131,7 +1131,7 @@
 
 static int qe_uec_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	const char *phy_mode;
 
 	pdata->iobase = (phys_addr_t)devfdt_get_addr(dev);
diff --git a/drivers/net/ravb.c b/drivers/net/ravb.c
index 48530c4..692cd57 100644
--- a/drivers/net/ravb.c
+++ b/drivers/net/ravb.c
@@ -306,7 +306,7 @@
 static int ravb_phy_config(struct udevice *dev)
 {
 	struct ravb_priv *eth = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct phy_device *phydev;
 	int mask = 0xffffffff, reg;
 
@@ -346,7 +346,7 @@
 static int ravb_write_hwaddr(struct udevice *dev)
 {
 	struct ravb_priv *eth = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	unsigned char *mac = pdata->enetaddr;
 
 	writel((mac[0] << 24) | (mac[1] << 16) | (mac[2] << 8) | mac[3],
@@ -373,7 +373,7 @@
 static int ravb_dmac_init(struct udevice *dev)
 {
 	struct ravb_priv *eth = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	int ret = 0;
 
 	/* Set CONFIG mode */
@@ -474,7 +474,7 @@
 
 static int ravb_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct ravb_priv *eth = dev_get_priv(dev);
 	struct ofnode_phandle_args phandle_args;
 	struct mii_dev *mdiodev;
@@ -644,7 +644,7 @@
 
 int ravb_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	const char *phy_mode;
 	const fdt32_t *cell;
 	int ret = 0;
diff --git a/drivers/net/rtl8139.c b/drivers/net/rtl8139.c
index c171e54..feeea93 100644
--- a/drivers/net/rtl8139.c
+++ b/drivers/net/rtl8139.c
@@ -660,7 +660,7 @@
 #else /* DM_ETH */
 static int rtl8139_start(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct rtl8139_priv *priv = dev_get_priv(dev);
 
 	memcpy(priv->enetaddr, plat->enetaddr, sizeof(plat->enetaddr));
@@ -704,7 +704,7 @@
 
 static int rtl8139_write_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct rtl8139_priv *priv = dev_get_priv(dev);
 
 	memcpy(priv->enetaddr, plat->enetaddr, sizeof(plat->enetaddr));
@@ -735,7 +735,7 @@
 
 static int rtl8139_probe(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct rtl8139_priv *priv = dev_get_priv(dev);
 	u32 iobase;
 
diff --git a/drivers/net/rtl8169.c b/drivers/net/rtl8169.c
index dc3405e..7aac8a9 100644
--- a/drivers/net/rtl8169.c
+++ b/drivers/net/rtl8169.c
@@ -890,7 +890,7 @@
 #ifdef CONFIG_DM_ETH
 static int rtl8169_eth_start(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct rtl8169_private *priv = dev_get_priv(dev);
 
 	rtl8169_common_start(dev, plat->enetaddr, priv->iobase);
@@ -953,7 +953,7 @@
 #ifdef CONFIG_DM_ETH
 static int rtl8169_write_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	unsigned int i;
 
 	RTL_W8(Cfg9346, Cfg9346_Unlock);
@@ -1189,7 +1189,7 @@
 {
 	struct pci_child_platdata *pplat = dev_get_parent_plat(dev);
 	struct rtl8169_private *priv = dev_get_priv(dev);
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	u32 iobase;
 	int region;
 	int ret;
diff --git a/drivers/net/sandbox-raw.c b/drivers/net/sandbox-raw.c
index 76a424e..7a8bc15 100644
--- a/drivers/net/sandbox-raw.c
+++ b/drivers/net/sandbox-raw.c
@@ -22,7 +22,7 @@
 static int sb_eth_raw_start(struct udevice *dev)
 {
 	struct eth_sandbox_raw_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	int ret;
 
 	debug("eth_sandbox_raw: Start\n");
@@ -65,7 +65,7 @@
 
 static int sb_eth_raw_recv(struct udevice *dev, int flags, uchar **packetp)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct eth_sandbox_raw_priv *priv = dev_get_priv(dev);
 	int retval = 0;
 	int length;
@@ -134,7 +134,7 @@
 
 static int sb_eth_raw_read_rom_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	net_random_ethaddr(pdata->enetaddr);
 
@@ -151,7 +151,7 @@
 
 static int sb_eth_raw_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct eth_sandbox_raw_priv *priv = dev_get_priv(dev);
 	const char *ifname;
 	int ret;
diff --git a/drivers/net/sandbox.c b/drivers/net/sandbox.c
index 846b802..a672333 100644
--- a/drivers/net/sandbox.c
+++ b/drivers/net/sandbox.c
@@ -393,7 +393,7 @@
 
 static int sb_eth_write_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	debug("eth_sandbox %s: Write HW ADDR - %pM\n", dev->name,
 	      pdata->enetaddr);
@@ -416,7 +416,7 @@
 
 static int sb_eth_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct eth_sandbox_priv *priv = dev_get_priv(dev);
 	const u8 *mac;
 
diff --git a/drivers/net/sh_eth.c b/drivers/net/sh_eth.c
index b1b8731..147b36e 100644
--- a/drivers/net/sh_eth.c
+++ b/drivers/net/sh_eth.c
@@ -744,7 +744,7 @@
 	struct sh_ether_priv *priv = dev_get_priv(dev);
 	struct sh_eth_dev *eth = &priv->shdev;
 	struct sh_eth_info *port_info = &eth->port_info[eth->port];
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	sh_eth_write_hwaddr(port_info, pdata->enetaddr);
 
@@ -754,7 +754,7 @@
 static int sh_eth_phy_config(struct udevice *dev)
 {
 	struct sh_ether_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct sh_eth_dev *eth = &priv->shdev;
 	int ret = 0;
 	struct sh_eth_info *port_info = &eth->port_info[eth->port];
@@ -776,7 +776,7 @@
 static int sh_ether_start(struct udevice *dev)
 {
 	struct sh_ether_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct sh_eth_dev *eth = &priv->shdev;
 	int ret;
 
@@ -808,7 +808,7 @@
 
 static int sh_ether_probe(struct udevice *udev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(udev);
+	struct eth_pdata *pdata = dev_get_plat(udev);
 	struct sh_ether_priv *priv = dev_get_priv(udev);
 	struct sh_eth_dev *eth = &priv->shdev;
 	struct ofnode_phandle_args phandle_args;
@@ -913,7 +913,7 @@
 
 int sh_ether_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	const char *phy_mode;
 	const fdt32_t *cell;
 	int ret = 0;
diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c
index 648932d..e3057a9 100644
--- a/drivers/net/smc911x.c
+++ b/drivers/net/smc911x.c
@@ -536,7 +536,7 @@
 
 static int smc911x_start(struct udevice *dev)
 {
-	struct eth_pdata *plat = dev_get_platdata(dev);
+	struct eth_pdata *plat = dev_get_plat(dev);
 	struct smc911x_priv *priv = dev_get_priv(dev);
 
 	memcpy(priv->enetaddr, plat->enetaddr, sizeof(plat->enetaddr));
@@ -577,7 +577,7 @@
 static int smc911x_read_rom_hwaddr(struct udevice *dev)
 {
 	struct smc911x_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	if (!smc911x_read_mac_address(priv))
 		return -ENODEV;
@@ -610,7 +610,7 @@
 static int smc911x_ofdata_to_platdata(struct udevice *dev)
 {
 	struct smc911x_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	pdata->iobase = dev_read_addr(dev);
 	priv->iobase = pdata->iobase;
diff --git a/drivers/net/sni_ave.c b/drivers/net/sni_ave.c
index 60153c0..9a1b2eb 100644
--- a/drivers/net/sni_ave.c
+++ b/drivers/net/sni_ave.c
@@ -299,7 +299,7 @@
 static int ave_adjust_link(struct ave_private *priv)
 {
 	struct phy_device *phydev = priv->phydev;
-	struct eth_pdata *pdata = dev_get_platdata(phydev->dev);
+	struct eth_pdata *pdata = dev_get_plat(phydev->dev);
 	u32 val, txcr, rxcr, rxcr_org;
 	u16 rmt_adv = 0, lcl_adv = 0;
 	u8 cap;
@@ -516,7 +516,7 @@
 static int ave_write_hwaddr(struct udevice *dev)
 {
 	struct ave_private *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	u8 *mac = pdata->enetaddr;
 
 	writel(mac[0] | mac[1] << 8 | mac[2] << 16 | mac[3] << 24,
@@ -734,7 +734,7 @@
 
 static int ave_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct ave_private *priv = dev_get_priv(dev);
 	struct ofnode_phandle_args args;
 	const char *phy_mode;
@@ -826,7 +826,7 @@
 
 static int ave_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct ave_private *priv = dev_get_priv(dev);
 	int ret, nc, nr;
 
diff --git a/drivers/net/sun8i_emac.c b/drivers/net/sun8i_emac.c
index 3430b22..a9d04eb 100644
--- a/drivers/net/sun8i_emac.c
+++ b/drivers/net/sun8i_emac.c
@@ -255,7 +255,7 @@
 static int sun8i_eth_write_hwaddr(struct udevice *dev)
 {
 	struct emac_eth_dev *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	uchar *mac_id = pdata->enetaddr;
 	u32 macid_lo, macid_hi;
 
@@ -712,7 +712,7 @@
 {
 	struct udevice *dev = bus->priv;
 	struct emac_eth_dev *priv = dev_get_priv(dev);
-	struct sun8i_eth_pdata *pdata = dev_get_platdata(dev);
+	struct sun8i_eth_pdata *pdata = dev_get_plat(dev);
 	int ret;
 
 	if (!dm_gpio_is_valid(&priv->reset_gpio))
@@ -799,7 +799,7 @@
 
 static int sun8i_emac_eth_probe(struct udevice *dev)
 {
-	struct sun8i_eth_pdata *sun8i_pdata = dev_get_platdata(dev);
+	struct sun8i_eth_pdata *sun8i_pdata = dev_get_plat(dev);
 	struct eth_pdata *pdata = &sun8i_pdata->eth_pdata;
 	struct emac_eth_dev *priv = dev_get_priv(dev);
 	int ret;
@@ -863,7 +863,7 @@
 
 static int sun8i_emac_eth_ofdata_to_platdata(struct udevice *dev)
 {
-	struct sun8i_eth_pdata *sun8i_pdata = dev_get_platdata(dev);
+	struct sun8i_eth_pdata *sun8i_pdata = dev_get_plat(dev);
 	struct eth_pdata *pdata = &sun8i_pdata->eth_pdata;
 	struct emac_eth_dev *priv = dev_get_priv(dev);
 	const char *phy_mode;
diff --git a/drivers/net/sunxi_emac.c b/drivers/net/sunxi_emac.c
index 0770a6b..1b01a47 100644
--- a/drivers/net/sunxi_emac.c
+++ b/drivers/net/sunxi_emac.c
@@ -535,7 +535,7 @@
 
 static int sunxi_emac_eth_start(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	return _sunxi_emac_eth_init(dev->priv, pdata->enetaddr);
 }
@@ -565,7 +565,7 @@
 
 static int sunxi_emac_eth_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct emac_eth_dev *priv = dev_get_priv(dev);
 	int ret;
 
@@ -593,7 +593,7 @@
 
 static int sunxi_emac_eth_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	pdata->iobase = dev_read_addr(dev);
 
diff --git a/drivers/net/ti/am65-cpsw-nuss.c b/drivers/net/ti/am65-cpsw-nuss.c
index ce891fc5..e6954b6 100644
--- a/drivers/net/ti/am65-cpsw-nuss.c
+++ b/drivers/net/ti/am65-cpsw-nuss.c
@@ -281,7 +281,7 @@
 
 static int am65_cpsw_start(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct am65_cpsw_priv *priv = dev_get_priv(dev);
 	struct am65_cpsw_common	*common = priv->cpsw_common;
 	struct am65_cpsw_port *port = &common->ports[priv->port_id];
@@ -514,7 +514,7 @@
 {
 	struct am65_cpsw_priv *priv = dev_get_priv(dev);
 	struct am65_cpsw_common *common = priv->cpsw_common;
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	u32 mac_hi, mac_lo;
 
 	if (common->mac_efuse == FDT_ADDR_T_NONE)
@@ -563,7 +563,7 @@
 {
 	struct am65_cpsw_priv *priv = dev_get_priv(dev);
 	struct am65_cpsw_common *cpsw_common = priv->cpsw_common;
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct phy_device *phydev;
 	u32 supported = PHY_GBIT_FEATURES;
 	int ret;
@@ -599,7 +599,7 @@
 
 static int am65_cpsw_ofdata_parse_phy(struct udevice *dev, ofnode port_np)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct am65_cpsw_priv *priv = dev_get_priv(dev);
 	struct ofnode_phandle_args out_args;
 	const char *phy_mode;
@@ -649,7 +649,7 @@
 static int am65_cpsw_probe_cpsw(struct udevice *dev)
 {
 	struct am65_cpsw_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct am65_cpsw_common *cpsw_common;
 	ofnode ports_np, node;
 	int ret, i;
diff --git a/drivers/net/ti/cpsw.c b/drivers/net/ti/cpsw.c
index 6234891..9aa1858 100644
--- a/drivers/net/ti/cpsw.c
+++ b/drivers/net/ti/cpsw.c
@@ -456,7 +456,7 @@
 			       struct cpsw_priv *priv)
 {
 #ifdef CONFIG_DM_ETH
-	struct eth_pdata *pdata = dev_get_platdata(priv->dev);
+	struct eth_pdata *pdata = dev_get_plat(priv->dev);
 
 	writel(mac_hi(pdata->enetaddr), &slave->regs->sa_hi);
 	writel(mac_lo(pdata->enetaddr), &slave->regs->sa_lo);
@@ -1014,7 +1014,7 @@
 #else
 static int cpsw_eth_start(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct cpsw_priv *priv = dev_get_priv(dev);
 
 	return _cpsw_init(priv, pdata->enetaddr);
@@ -1176,7 +1176,7 @@
 static int cpsw_eth_probe(struct udevice *dev)
 {
 	struct cpsw_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	priv->dev = dev;
 	priv->data = pdata->priv_pdata;
@@ -1225,7 +1225,7 @@
 
 static int cpsw_eth_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct cpsw_platform_data *data;
 	struct gpio_desc *mode_gpios;
 	int slave_index = 0;
diff --git a/drivers/net/ti/davinci_emac.c b/drivers/net/ti/davinci_emac.c
index 9cf7e6c..bfe1b84 100644
--- a/drivers/net/ti/davinci_emac.c
+++ b/drivers/net/ti/davinci_emac.c
@@ -112,7 +112,7 @@
 
 static int davinci_emac_write_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	unsigned long		mac_hi;
 	unsigned long		mac_lo;
 
diff --git a/drivers/net/ti/keystone_net.c b/drivers/net/ti/keystone_net.c
index b67981e..8e9eca1 100644
--- a/drivers/net/ti/keystone_net.c
+++ b/drivers/net/ti/keystone_net.c
@@ -496,7 +496,7 @@
 int ks2_eth_read_rom_hwaddr(struct udevice *dev)
 {
 	struct ks2_eth_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	u32 maca = 0;
 	u32 macb = 0;
 
@@ -519,7 +519,7 @@
 int ks2_eth_write_hwaddr(struct udevice *dev)
 {
 	struct ks2_eth_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	writel(mac_hi(pdata->enetaddr),
 	       DEVICE_EMACSW_BASE(pdata->iobase, priv->slave_port - 1) +
@@ -750,7 +750,7 @@
 static int ks2_sl_eth_ofdata_to_platdata(struct udevice *dev)
 {
 	struct ks2_eth_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	const void *fdt = gd->fdt_blob;
 	int slave = dev_of_offset(dev);
 	int interfaces;
@@ -773,7 +773,7 @@
 static int ks2_eth_ofdata_to_platdata(struct udevice *dev)
 {
 	struct ks2_eth_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	const void *fdt = gd->fdt_blob;
 	int gbe_0 = -ENODEV;
 	int netcp_devices;
diff --git a/drivers/net/tsec.c b/drivers/net/tsec.c
index 8c53059..2271eb8 100644
--- a/drivers/net/tsec.c
+++ b/drivers/net/tsec.c
@@ -562,7 +562,7 @@
 {
 	struct tsec_private *priv = (struct tsec_private *)dev->priv;
 #ifdef CONFIG_DM_ETH
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 #else
 	struct eth_device *pdata = dev;
 #endif
@@ -799,7 +799,7 @@
 #else /* CONFIG_DM_ETH */
 int tsec_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct tsec_private *priv = dev_get_priv(dev);
 	struct ofnode_phandle_args phandle_args;
 	u32 tbiaddr = CONFIG_SYS_TBIPA_VALUE;
diff --git a/drivers/net/xilinx_axi_emac.c b/drivers/net/xilinx_axi_emac.c
index 5604a33..10c6b60 100644
--- a/drivers/net/xilinx_axi_emac.c
+++ b/drivers/net/xilinx_axi_emac.c
@@ -425,7 +425,7 @@
 
 static int axiemac_write_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct axidma_priv *priv = dev_get_priv(dev);
 	struct axi_regs *regs = priv->iobase;
 
@@ -728,7 +728,7 @@
 
 static int axi_emac_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct axidma_priv *priv = dev_get_priv(dev);
 	int node = dev_of_offset(dev);
 	int offset = 0;
diff --git a/drivers/net/xilinx_emaclite.c b/drivers/net/xilinx_emaclite.c
index acbf0fa..4a0e3f6 100644
--- a/drivers/net/xilinx_emaclite.c
+++ b/drivers/net/xilinx_emaclite.c
@@ -322,7 +322,7 @@
 static int emaclite_start(struct udevice *dev)
 {
 	struct xemaclite *emaclite = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct emaclite_regs *regs = emaclite->regs;
 
 	debug("EmacLite Initialization Started\n");
@@ -595,7 +595,7 @@
 
 static int emaclite_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct xemaclite *emaclite = dev_get_priv(dev);
 	int offset = 0;
 
diff --git a/drivers/net/zynq_gem.c b/drivers/net/zynq_gem.c
index ea57be2..9d25051 100644
--- a/drivers/net/zynq_gem.c
+++ b/drivers/net/zynq_gem.c
@@ -270,7 +270,7 @@
 static int zynq_gem_setup_mac(struct udevice *dev)
 {
 	u32 i, macaddrlow, macaddrhigh;
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct zynq_gem_priv *priv = dev_get_priv(dev);
 	struct zynq_gem_regs *regs = priv->iobase;
 
@@ -635,7 +635,7 @@
 
 static int zynq_gem_read_rom_mac(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	if (!pdata)
 		return -ENOSYS;
@@ -745,7 +745,7 @@
 
 static int zynq_gem_ofdata_to_platdata(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct zynq_gem_priv *priv = dev_get_priv(dev);
 	struct ofnode_phandle_args phandle_args;
 	const char *phy_mode;
diff --git a/drivers/pci/pci-rcar-gen3.c b/drivers/pci/pci-rcar-gen3.c
index 3a0a4b5..9ef6314 100644
--- a/drivers/pci/pci-rcar-gen3.c
+++ b/drivers/pci/pci-rcar-gen3.c
@@ -129,7 +129,7 @@
 
 static void rcar_rmw32(struct udevice *dev, int where, u32 mask, u32 data)
 {
-	struct rcar_gen3_pcie_priv *priv = dev_get_platdata(dev);
+	struct rcar_gen3_pcie_priv *priv = dev_get_plat(dev);
 	int shift = 8 * (where & 3);
 
 	clrsetbits_le32(priv->regs + (where & ~3),
@@ -138,7 +138,7 @@
 
 static u32 rcar_read_conf(const struct udevice *dev, int where)
 {
-	struct rcar_gen3_pcie_priv *priv = dev_get_platdata(dev);
+	struct rcar_gen3_pcie_priv *priv = dev_get_plat(dev);
 	int shift = 8 * (where & 3);
 
 	return readl(priv->regs + (where & ~3)) >> shift;
@@ -148,7 +148,7 @@
 				   unsigned char access_type,
 				   pci_dev_t bdf, int where, ulong *data)
 {
-	struct rcar_gen3_pcie_priv *priv = dev_get_platdata(udev);
+	struct rcar_gen3_pcie_priv *priv = dev_get_plat(udev);
 	u32 reg = where & ~3;
 
 	/* Clear errors */
@@ -241,7 +241,7 @@
 
 static int rcar_gen3_pcie_wait_for_phyrdy(struct udevice *dev)
 {
-	struct rcar_gen3_pcie_priv *priv = dev_get_platdata(dev);
+	struct rcar_gen3_pcie_priv *priv = dev_get_plat(dev);
 
 	return wait_for_bit_le32((void *)priv->regs + PCIEPHYSR, PHYRDY,
 				 true, 50, false);
@@ -249,7 +249,7 @@
 
 static int rcar_gen3_pcie_wait_for_dl(struct udevice *dev)
 {
-	struct rcar_gen3_pcie_priv *priv = dev_get_platdata(dev);
+	struct rcar_gen3_pcie_priv *priv = dev_get_plat(dev);
 
 	return wait_for_bit_le32((void *)priv->regs + PCIETSTR,
 				 DATA_LINK_ACTIVE, true, 50, false);
@@ -257,7 +257,7 @@
 
 static int rcar_gen3_pcie_hw_init(struct udevice *dev)
 {
-	struct rcar_gen3_pcie_priv *priv = dev_get_platdata(dev);
+	struct rcar_gen3_pcie_priv *priv = dev_get_plat(dev);
 	int ret;
 
 	/* Begin initialization */
@@ -313,7 +313,7 @@
 
 static int rcar_gen3_pcie_probe(struct udevice *dev)
 {
-	struct rcar_gen3_pcie_priv *priv = dev_get_platdata(dev);
+	struct rcar_gen3_pcie_priv *priv = dev_get_plat(dev);
 	struct pci_controller *hose = dev_get_uclass_priv(dev);
 	struct clk pci_clk;
 	u32 mask;
@@ -374,7 +374,7 @@
 
 static int rcar_gen3_pcie_ofdata_to_platdata(struct udevice *dev)
 {
-	struct rcar_gen3_pcie_priv *priv = dev_get_platdata(dev);
+	struct rcar_gen3_pcie_priv *priv = dev_get_plat(dev);
 
 	priv->regs = devfdt_get_addr_index(dev, 0);
 	if (!priv->regs)
diff --git a/drivers/pci/pci_mvebu.c b/drivers/pci/pci_mvebu.c
index 7deb15f..f2d6222 100644
--- a/drivers/pci/pci_mvebu.c
+++ b/drivers/pci/pci_mvebu.c
@@ -143,7 +143,7 @@
 				  uint offset, ulong *valuep,
 				  enum pci_size_t size)
 {
-	struct mvebu_pcie *pcie = dev_get_platdata(bus);
+	struct mvebu_pcie *pcie = dev_get_plat(bus);
 	int local_bus = PCI_BUS(pcie->dev);
 	int local_dev = PCI_DEV(pcie->dev);
 	u32 reg;
@@ -187,7 +187,7 @@
 				   uint offset, ulong value,
 				   enum pci_size_t size)
 {
-	struct mvebu_pcie *pcie = dev_get_platdata(bus);
+	struct mvebu_pcie *pcie = dev_get_plat(bus);
 	int local_bus = PCI_BUS(pcie->dev);
 	int local_dev = PCI_DEV(pcie->dev);
 	u32 data;
@@ -277,7 +277,7 @@
 
 static int mvebu_pcie_probe(struct udevice *dev)
 {
-	struct mvebu_pcie *pcie = dev_get_platdata(dev);
+	struct mvebu_pcie *pcie = dev_get_plat(dev);
 	struct udevice *ctlr = pci_get_controller(dev);
 	struct pci_controller *hose = dev_get_uclass_priv(ctlr);
 	static int bus;
@@ -412,7 +412,7 @@
 
 static int mvebu_pcie_ofdata_to_platdata(struct udevice *dev)
 {
-	struct mvebu_pcie *pcie = dev_get_platdata(dev);
+	struct mvebu_pcie *pcie = dev_get_plat(dev);
 	int ret = 0;
 
 	/* Get port number, lane number and memory target / attr */
diff --git a/drivers/phy/allwinner/phy-sun4i-usb.c b/drivers/phy/allwinner/phy-sun4i-usb.c
index f5ed969..5723c98 100644
--- a/drivers/phy/allwinner/phy-sun4i-usb.c
+++ b/drivers/phy/allwinner/phy-sun4i-usb.c
@@ -428,7 +428,7 @@
 
 static int sun4i_usb_phy_probe(struct udevice *dev)
 {
-	struct sun4i_usb_phy_plat *plat = dev_get_platdata(dev);
+	struct sun4i_usb_phy_plat *plat = dev_get_plat(dev);
 	struct sun4i_usb_phy_data *data = dev_get_priv(dev);
 	int i, ret;
 
diff --git a/drivers/pinctrl/intel/pinctrl_apl.c b/drivers/pinctrl/intel/pinctrl_apl.c
index a4f46e6..b34cae6 100644
--- a/drivers/pinctrl/intel/pinctrl_apl.c
+++ b/drivers/pinctrl/intel/pinctrl_apl.c
@@ -143,7 +143,7 @@
 	int i;
 
 #if CONFIG_IS_ENABLED(OF_PLATDATA)
-	struct apl_gpio_platdata *plat = dev_get_platdata(dev);
+	struct apl_gpio_platdata *plat = dev_get_plat(dev);
 	int ret;
 
 	/*
diff --git a/drivers/pinctrl/pinctrl-at91-pio4.c b/drivers/pinctrl/pinctrl-at91-pio4.c
index 3bc16bb..9a25cfa 100644
--- a/drivers/pinctrl/pinctrl-at91-pio4.c
+++ b/drivers/pinctrl/pinctrl-at91-pio4.c
@@ -95,7 +95,7 @@
 static inline struct atmel_pio4_port *atmel_pio4_bank_base(struct udevice *dev,
 							   u32 bank)
 {
-	struct atmel_pio4_platdata *plat = dev_get_platdata(dev);
+	struct atmel_pio4_platdata *plat = dev_get_plat(dev);
 	struct atmel_pio4_port *bank_base =
 			(struct atmel_pio4_port *)((u32)plat->reg_base +
 			ATMEL_PIO_BANK_OFFSET * bank);
@@ -154,7 +154,7 @@
 
 static int atmel_pinctrl_probe(struct udevice *dev)
 {
-	struct atmel_pio4_platdata *plat = dev_get_platdata(dev);
+	struct atmel_pio4_platdata *plat = dev_get_plat(dev);
 	fdt_addr_t addr_base;
 
 	dev = dev_get_parent(dev);
diff --git a/drivers/pinctrl/pinctrl-sti.c b/drivers/pinctrl/pinctrl-sti.c
index de208d4..1ea869a 100644
--- a/drivers/pinctrl/pinctrl-sti.c
+++ b/drivers/pinctrl/pinctrl-sti.c
@@ -57,7 +57,7 @@
  */
 void sti_alternate_select(struct udevice *dev, struct sti_pin_desc *pin_desc)
 {
-	struct sti_pinctrl_platdata *plat = dev_get_platdata(dev);
+	struct sti_pinctrl_platdata *plat = dev_get_plat(dev);
 	unsigned long sysconf, *sysconfreg;
 	int alt = pin_desc->alt;
 	int bank = pin_desc->bank;
@@ -91,7 +91,7 @@
 /* pin configuration */
 void sti_pin_configure(struct udevice *dev, struct sti_pin_desc *pin_desc)
 {
-	struct sti_pinctrl_platdata *plat = dev_get_platdata(dev);
+	struct sti_pinctrl_platdata *plat = dev_get_plat(dev);
 	int bit;
 	int oe = 0, pu = 0, od = 0;
 	unsigned long *sysconfreg;
@@ -277,7 +277,7 @@
 
 static int sti_pinctrl_probe(struct udevice *dev)
 {
-	struct sti_pinctrl_platdata *plat = dev_get_platdata(dev);
+	struct sti_pinctrl_platdata *plat = dev_get_plat(dev);
 	struct udevice *syscon;
 	int err;
 
diff --git a/drivers/pinctrl/pinctrl-stmfx.c b/drivers/pinctrl/pinctrl-stmfx.c
index 21c7dc4..7cf08db 100644
--- a/drivers/pinctrl/pinctrl-stmfx.c
+++ b/drivers/pinctrl/pinctrl-stmfx.c
@@ -293,7 +293,7 @@
 				  unsigned int param, unsigned int arg)
 {
 	int ret, dir;
-	struct stmfx_pinctrl *plat = dev_get_platdata(dev);
+	struct stmfx_pinctrl *plat = dev_get_plat(dev);
 
 	dir = stmfx_gpio_get_function(plat->gpio, pin);
 
@@ -334,7 +334,7 @@
 
 static int stmfx_pinctrl_get_pins_count(struct udevice *dev)
 {
-	struct stmfx_pinctrl *plat = dev_get_platdata(dev);
+	struct stmfx_pinctrl *plat = dev_get_plat(dev);
 	struct gpio_dev_priv *uc_priv;
 
 	uc_priv = dev_get_uclass_priv(plat->gpio);
@@ -390,7 +390,7 @@
 					unsigned int selector,
 					char *buf, int size)
 {
-	struct stmfx_pinctrl *plat = dev_get_platdata(dev);
+	struct stmfx_pinctrl *plat = dev_get_plat(dev);
 	int func;
 
 	func = stmfx_gpio_get_function(plat->gpio, selector);
@@ -406,7 +406,7 @@
 
 static int stmfx_pinctrl_bind(struct udevice *dev)
 {
-	struct stmfx_pinctrl *plat = dev_get_platdata(dev);
+	struct stmfx_pinctrl *plat = dev_get_plat(dev);
 
 	/* subnode name is not explicit: use father name */
 	device_set_name(dev, dev->parent->name);
@@ -418,7 +418,7 @@
 
 static int stmfx_pinctrl_probe(struct udevice *dev)
 {
-	struct stmfx_pinctrl *plat = dev_get_platdata(dev);
+	struct stmfx_pinctrl *plat = dev_get_plat(dev);
 
 	return device_probe(plat->gpio);
 };
diff --git a/drivers/pinctrl/renesas/pfc-r7s72100.c b/drivers/pinctrl/renesas/pfc-r7s72100.c
index ec55caa..bc81684 100644
--- a/drivers/pinctrl/renesas/pfc-r7s72100.c
+++ b/drivers/pinctrl/renesas/pfc-r7s72100.c
@@ -39,7 +39,7 @@
 static void r7s72100_pfc_set_function(struct udevice *dev, u16 bank, u16 line,
 				      u16 func, u16 inbuf, u16 bidir)
 {
-	struct r7s72100_pfc_platdata *plat = dev_get_platdata(dev);
+	struct r7s72100_pfc_platdata *plat = dev_get_plat(dev);
 
 	clrsetbits_le16(plat->base + PFCAE(bank), BIT(line),
 			(func & BIT(2)) ? BIT(line) : 0);
@@ -108,7 +108,7 @@
 
 static int r7s72100_pfc_probe(struct udevice *dev)
 {
-	struct r7s72100_pfc_platdata *plat = dev_get_platdata(dev);
+	struct r7s72100_pfc_platdata *plat = dev_get_plat(dev);
 	fdt_addr_t addr_base;
 	ofnode node;
 
diff --git a/drivers/power/acpi_pmc/pmc_emul.c b/drivers/power/acpi_pmc/pmc_emul.c
index 9ce8c16..0a72afd 100644
--- a/drivers/power/acpi_pmc/pmc_emul.c
+++ b/drivers/power/acpi_pmc/pmc_emul.c
@@ -46,7 +46,7 @@
 static int sandbox_pmc_emul_read_config(const struct udevice *emul, uint offset,
 					ulong *valuep, enum pci_size_t size)
 {
-	struct pmc_emul_platdata *plat = dev_get_platdata(emul);
+	struct pmc_emul_platdata *plat = dev_get_plat(emul);
 
 	switch (offset) {
 	case PCI_COMMAND:
@@ -99,7 +99,7 @@
 static int sandbox_pmc_emul_write_config(struct udevice *emul, uint offset,
 					 ulong value, enum pci_size_t size)
 {
-	struct pmc_emul_platdata *plat = dev_get_platdata(emul);
+	struct pmc_emul_platdata *plat = dev_get_plat(emul);
 
 	switch (offset) {
 	case PCI_COMMAND:
@@ -127,7 +127,7 @@
 static int sandbox_pmc_emul_find_bar(struct udevice *emul, unsigned int addr,
 				     int *barnump, unsigned int *offsetp)
 {
-	struct pmc_emul_platdata *plat = dev_get_platdata(emul);
+	struct pmc_emul_platdata *plat = dev_get_plat(emul);
 	int barnum;
 
 	for (barnum = 0; barnum < ARRAY_SIZE(barinfo); barnum++) {
diff --git a/drivers/power/domain/imx8-power-domain-legacy.c b/drivers/power/domain/imx8-power-domain-legacy.c
index ed88fd7..c97dfbb 100644
--- a/drivers/power/domain/imx8-power-domain-legacy.c
+++ b/drivers/power/domain/imx8-power-domain-legacy.c
@@ -116,7 +116,7 @@
 			return err;
 	}
 
-	pdata = (struct imx8_power_domain_platdata *)dev_get_platdata(dev);
+	pdata = (struct imx8_power_domain_platdata *)dev_get_plat(dev);
 	ppriv = (struct imx8_power_domain_priv *)dev_get_priv(dev);
 
 	debug("%s(power_domain=%s) resource_id %d\n", __func__, dev->name,
@@ -155,7 +155,7 @@
 	sc_err_t ret;
 
 	ppriv = dev_get_priv(dev);
-	pdata = dev_get_platdata(dev);
+	pdata = dev_get_plat(dev);
 
 	debug("%s, %s, state_on %d\n", __func__, dev->name, ppriv->state_on);
 
@@ -208,7 +208,7 @@
 
 	if (device_get_uclass_id(parent) == UCLASS_POWER_DOMAIN) {
 		pdata =
-		(struct imx8_power_domain_platdata *)dev_get_platdata(parent);
+		(struct imx8_power_domain_platdata *)dev_get_plat(parent);
 		ppriv = (struct imx8_power_domain_priv *)dev_get_priv(parent);
 
 		debug("%s, %s, state_on %d\n", __func__, parent->name,
@@ -343,7 +343,7 @@
 static int imx8_power_domain_ofdata_to_platdata(struct udevice *dev)
 {
 	int reg;
-	struct imx8_power_domain_platdata *pdata = dev_get_platdata(dev);
+	struct imx8_power_domain_platdata *pdata = dev_get_plat(dev);
 
 	reg = fdtdec_get_int(gd->fdt_blob, dev_of_offset(dev), "reg", -1);
 	if (reg == -1) {
diff --git a/drivers/power/domain/imx8m-power-domain.c b/drivers/power/domain/imx8m-power-domain.c
index 7e2d232..1248f93 100644
--- a/drivers/power/domain/imx8m-power-domain.c
+++ b/drivers/power/domain/imx8m-power-domain.c
@@ -32,7 +32,7 @@
 	struct udevice *dev = power_domain->dev;
 	struct imx8m_power_domain_platdata *pdata;
 
-	pdata = dev_get_platdata(dev);
+	pdata = dev_get_plat(dev);
 
 	if (pdata->resource_id < 0)
 		return -EINVAL;
@@ -50,7 +50,7 @@
 {
 	struct udevice *dev = power_domain->dev;
 	struct imx8m_power_domain_platdata *pdata;
-	pdata = dev_get_platdata(dev);
+	pdata = dev_get_plat(dev);
 
 	if (pdata->resource_id < 0)
 		return -EINVAL;
@@ -106,7 +106,7 @@
 
 static int imx8m_power_domain_ofdata_to_platdata(struct udevice *dev)
 {
-	struct imx8m_power_domain_platdata *pdata = dev_get_platdata(dev);
+	struct imx8m_power_domain_platdata *pdata = dev_get_plat(dev);
 
 	pdata->resource_id = fdtdec_get_int(gd->fdt_blob, dev_of_offset(dev),
 					    "reg", -1);
diff --git a/drivers/power/pmic/i2c_pmic_emul.c b/drivers/power/pmic/i2c_pmic_emul.c
index 168b8a5..a85de82 100644
--- a/drivers/power/pmic/i2c_pmic_emul.c
+++ b/drivers/power/pmic/i2c_pmic_emul.c
@@ -30,7 +30,7 @@
 static int sandbox_i2c_pmic_read_data(struct udevice *emul, uchar chip,
 				      uchar *buffer, int len)
 {
-	struct sandbox_i2c_pmic_plat_data *plat = dev_get_platdata(emul);
+	struct sandbox_i2c_pmic_plat_data *plat = dev_get_plat(emul);
 
 	if (plat->rw_idx + len > plat->buf_size) {
 		pr_err("Request exceeds PMIC register range! Max register: %#x",
@@ -50,7 +50,7 @@
 				       uchar *buffer, int len,
 				       bool next_is_read)
 {
-	struct sandbox_i2c_pmic_plat_data *plat = dev_get_platdata(emul);
+	struct sandbox_i2c_pmic_plat_data *plat = dev_get_plat(emul);
 
 	/* Probe only */
 	if (!len)
@@ -105,7 +105,7 @@
 
 static int sandbox_i2c_pmic_ofdata_to_platdata(struct udevice *emul)
 {
-	struct sandbox_i2c_pmic_plat_data *plat = dev_get_platdata(emul);
+	struct sandbox_i2c_pmic_plat_data *plat = dev_get_plat(emul);
 	struct udevice *pmic_dev = i2c_emul_get_device(emul);
 
 	debug("%s:%d Setting PMIC default registers\n", __func__, __LINE__);
@@ -116,7 +116,7 @@
 
 static int sandbox_i2c_pmic_probe(struct udevice *emul)
 {
-	struct sandbox_i2c_pmic_plat_data *plat = dev_get_platdata(emul);
+	struct sandbox_i2c_pmic_plat_data *plat = dev_get_plat(emul);
 	struct udevice *pmic_dev = i2c_emul_get_device(emul);
 	struct uc_pmic_priv *upriv = dev_get_uclass_priv(pmic_dev);
 	const u8 *reg_defaults;
diff --git a/drivers/power/regulator/bd71837.c b/drivers/power/regulator/bd71837.c
index c9d966fd..1637a2d 100644
--- a/drivers/power/regulator/bd71837.c
+++ b/drivers/power/regulator/bd71837.c
@@ -274,7 +274,7 @@
 static int bd71837_get_enable(struct udevice *dev)
 {
 	int val;
-	struct bd71837_platdata *plat = dev_get_platdata(dev);
+	struct bd71837_platdata *plat = dev_get_plat(dev);
 
 	/*
 	 * boot critical regulators on bd71837 must not be controlled by sw
@@ -298,7 +298,7 @@
 static int bd71837_set_enable(struct udevice *dev, bool enable)
 {
 	int val = 0;
-	struct bd71837_platdata *plat = dev_get_platdata(dev);
+	struct bd71837_platdata *plat = dev_get_plat(dev);
 
 	/*
 	 * boot critical regulators on bd71837 must not be controlled by sw
@@ -321,7 +321,7 @@
 	unsigned int range;
 	int i;
 	int found = 0;
-	struct bd71837_platdata *plat = dev_get_platdata(dev);
+	struct bd71837_platdata *plat = dev_get_plat(dev);
 
 	/*
 	 * An under/overshooting may occur if voltage is changed for other
@@ -369,7 +369,7 @@
 {
 	unsigned int reg, range;
 	unsigned int tmp;
-	struct bd71837_platdata *plat = dev_get_platdata(dev);
+	struct bd71837_platdata *plat = dev_get_plat(dev);
 	int i;
 
 	reg = pmic_reg_read(dev->parent, plat->volt_reg);
@@ -399,7 +399,7 @@
 
 static int bd71837_regulator_probe(struct udevice *dev)
 {
-	struct bd71837_platdata *plat = dev_get_platdata(dev);
+	struct bd71837_platdata *plat = dev_get_plat(dev);
 	int i, ret;
 	struct dm_regulator_uclass_plat *uc_pdata;
 	int type;
diff --git a/drivers/power/regulator/fan53555.c b/drivers/power/regulator/fan53555.c
index 709cc63..02a08b5 100644
--- a/drivers/power/regulator/fan53555.c
+++ b/drivers/power/regulator/fan53555.c
@@ -102,7 +102,7 @@
 
 static int fan53555_regulator_ofdata_to_platdata(struct udevice *dev)
 {
-	struct fan53555_platdata *dev_pdata = dev_get_platdata(dev);
+	struct fan53555_platdata *dev_pdata = dev_get_plat(dev);
 	struct dm_regulator_uclass_plat *uc_pdata =
 		dev_get_uclass_plat(dev);
 	u32 sleep_vsel;
@@ -136,7 +136,7 @@
 
 static int fan53555_regulator_get_value(struct udevice *dev)
 {
-	struct fan53555_platdata *pdata = dev_get_platdata(dev);
+	struct fan53555_platdata *pdata = dev_get_plat(dev);
 	struct fan53555_priv *priv = dev_get_priv(dev);
 	int reg;
 	int voltage;
@@ -153,7 +153,7 @@
 
 static int fan53555_regulator_set_value(struct udevice *dev, int uV)
 {
-	struct fan53555_platdata *pdata = dev_get_platdata(dev);
+	struct fan53555_platdata *pdata = dev_get_plat(dev);
 	struct fan53555_priv *priv = dev_get_priv(dev);
 	u8 vol;
 
diff --git a/drivers/power/regulator/fixed.c b/drivers/power/regulator/fixed.c
index ed27ffc..4967b70 100644
--- a/drivers/power/regulator/fixed.c
+++ b/drivers/power/regulator/fixed.c
@@ -19,7 +19,7 @@
 	struct dm_regulator_uclass_plat *uc_pdata;
 	struct regulator_common_platdata *dev_pdata;
 
-	dev_pdata = dev_get_platdata(dev);
+	dev_pdata = dev_get_plat(dev);
 	uc_pdata = dev_get_uclass_plat(dev);
 	if (!uc_pdata)
 		return -ENXIO;
@@ -63,12 +63,12 @@
 
 static int fixed_regulator_get_enable(struct udevice *dev)
 {
-	return regulator_common_get_enable(dev, dev_get_platdata(dev));
+	return regulator_common_get_enable(dev, dev_get_plat(dev));
 }
 
 static int fixed_regulator_set_enable(struct udevice *dev, bool enable)
 {
-	return regulator_common_set_enable(dev, dev_get_platdata(dev), enable);
+	return regulator_common_set_enable(dev, dev_get_plat(dev), enable);
 }
 
 static const struct dm_regulator_ops fixed_regulator_ops = {
diff --git a/drivers/power/regulator/gpio-regulator.c b/drivers/power/regulator/gpio-regulator.c
index 39b0f08..80a6949 100644
--- a/drivers/power/regulator/gpio-regulator.c
+++ b/drivers/power/regulator/gpio-regulator.c
@@ -33,7 +33,7 @@
 	int ret, count, i, j;
 	u32 states_array[GPIO_REGULATOR_MAX_STATES * 2];
 
-	dev_pdata = dev_get_platdata(dev);
+	dev_pdata = dev_get_plat(dev);
 	uc_pdata = dev_get_uclass_plat(dev);
 	if (!uc_pdata)
 		return -ENXIO;
@@ -80,7 +80,7 @@
 static int gpio_regulator_get_value(struct udevice *dev)
 {
 	struct dm_regulator_uclass_plat *uc_pdata;
-	struct gpio_regulator_platdata *dev_pdata = dev_get_platdata(dev);
+	struct gpio_regulator_platdata *dev_pdata = dev_get_plat(dev);
 	int enable;
 
 	if (!dev_pdata->gpio.dev)
@@ -101,7 +101,7 @@
 
 static int gpio_regulator_set_value(struct udevice *dev, int uV)
 {
-	struct gpio_regulator_platdata *dev_pdata = dev_get_platdata(dev);
+	struct gpio_regulator_platdata *dev_pdata = dev_get_plat(dev);
 	int ret;
 	bool enable;
 
@@ -127,13 +127,13 @@
 
 static int gpio_regulator_get_enable(struct udevice *dev)
 {
-	struct gpio_regulator_platdata *dev_pdata = dev_get_platdata(dev);
+	struct gpio_regulator_platdata *dev_pdata = dev_get_plat(dev);
 	return regulator_common_get_enable(dev, &dev_pdata->common);
 }
 
 static int gpio_regulator_set_enable(struct udevice *dev, bool enable)
 {
-	struct gpio_regulator_platdata *dev_pdata = dev_get_platdata(dev);
+	struct gpio_regulator_platdata *dev_pdata = dev_get_plat(dev);
 	return regulator_common_set_enable(dev, &dev_pdata->common, enable);
 }
 
diff --git a/drivers/power/regulator/pfuze100.c b/drivers/power/regulator/pfuze100.c
index ebf355c..d75ea7c 100644
--- a/drivers/power/regulator/pfuze100.c
+++ b/drivers/power/regulator/pfuze100.c
@@ -261,7 +261,7 @@
 static int pfuze100_regulator_probe(struct udevice *dev)
 {
 	struct dm_regulator_uclass_plat *uc_pdata;
-	struct pfuze100_regulator_platdata *plat = dev_get_platdata(dev);
+	struct pfuze100_regulator_platdata *plat = dev_get_plat(dev);
 	struct pfuze100_regulator_desc *desc;
 
 	switch (dev_get_driver_data(dev_get_parent(dev))) {
@@ -315,7 +315,7 @@
 static int pfuze100_regulator_mode(struct udevice *dev, int op, int *opmode)
 {
 	int val;
-	struct pfuze100_regulator_platdata *plat = dev_get_platdata(dev);
+	struct pfuze100_regulator_platdata *plat = dev_get_plat(dev);
 	struct pfuze100_regulator_desc *desc = plat->desc;
 
 	if (op == PMIC_OP_GET) {
@@ -449,7 +449,7 @@
 {
 	int i;
 	int val;
-	struct pfuze100_regulator_platdata *plat = dev_get_platdata(dev);
+	struct pfuze100_regulator_platdata *plat = dev_get_plat(dev);
 	struct pfuze100_regulator_desc *desc = plat->desc;
 	struct dm_regulator_uclass_plat *uc_pdata =
 		dev_get_uclass_plat(dev);
diff --git a/drivers/power/regulator/tps62360_regulator.c b/drivers/power/regulator/tps62360_regulator.c
index e44c6bb..b9f4504 100644
--- a/drivers/power/regulator/tps62360_regulator.c
+++ b/drivers/power/regulator/tps62360_regulator.c
@@ -43,7 +43,7 @@
 
 static int tps62360_regulator_set_value(struct udevice *dev, int uV)
 {
-	struct tps62360_regulator_pdata *pdata = dev_get_platdata(dev);
+	struct tps62360_regulator_pdata *pdata = dev_get_plat(dev);
 	u8 regval;
 
 	if (uV < pdata->config->vmin || uV > pdata->config->vmax)
@@ -66,7 +66,7 @@
 {
 	u8 regval;
 	int ret;
-	struct tps62360_regulator_pdata *pdata = dev_get_platdata(dev);
+	struct tps62360_regulator_pdata *pdata = dev_get_plat(dev);
 
 	ret = dm_i2c_read(pdata->i2c, TPS62360_REG_SET0 + pdata->vsel_offset,
 			  &regval, 1);
@@ -80,7 +80,7 @@
 
 static int tps62360_regulator_probe(struct udevice *dev)
 {
-	struct tps62360_regulator_pdata *pdata = dev_get_platdata(dev);
+	struct tps62360_regulator_pdata *pdata = dev_get_plat(dev);
 	u8 vsel0;
 	u8 vsel1;
 	int ret;
diff --git a/drivers/power/regulator/tps65910_regulator.c b/drivers/power/regulator/tps65910_regulator.c
index 3c211a1..9fb13d6 100644
--- a/drivers/power/regulator/tps65910_regulator.c
+++ b/drivers/power/regulator/tps65910_regulator.c
@@ -141,7 +141,7 @@
 					const struct regulator_props *rgp)
 {
 	int sel, val, vout;
-	struct tps65910_regulator_pdata *pdata = dev_get_platdata(dev);
+	struct tps65910_regulator_pdata *pdata = dev_get_plat(dev);
 	int vin = pdata->supply;
 
 	val = pmic_reg_read(dev->parent, rgp->reg);
@@ -156,7 +156,7 @@
 
 static int tps65910_ldo_get_value(struct udevice *dev)
 {
-	struct tps65910_regulator_pdata *pdata = dev_get_platdata(dev);
+	struct tps65910_regulator_pdata *pdata = dev_get_plat(dev);
 	int vin;
 
 	if (!pdata)
@@ -194,7 +194,7 @@
 {
 	int val;
 	int sel = 0;
-	struct tps65910_regulator_pdata *pdata = dev_get_platdata(dev);
+	struct tps65910_regulator_pdata *pdata = dev_get_plat(dev);
 
 	do {
 		/* we only allow exact voltage matches */
@@ -216,7 +216,7 @@
 
 static int tps65910_ldo_set_value(struct udevice *dev, int uV)
 {
-	struct tps65910_regulator_pdata *pdata = dev_get_platdata(dev);
+	struct tps65910_regulator_pdata *pdata = dev_get_plat(dev);
 	int vin = pdata->supply;
 
 	switch (pdata->unit) {
@@ -249,7 +249,7 @@
 static int tps65910_get_enable(struct udevice *dev)
 {
 	int reg, val;
-	struct tps65910_regulator_pdata *pdata = dev_get_platdata(dev);
+	struct tps65910_regulator_pdata *pdata = dev_get_plat(dev);
 
 	reg = get_ctrl_reg_from_unit_addr(pdata->unit);
 	if (reg < 0)
@@ -267,7 +267,7 @@
 {
 	int reg;
 	uint clr, set;
-	struct tps65910_regulator_pdata *pdata = dev_get_platdata(dev);
+	struct tps65910_regulator_pdata *pdata = dev_get_plat(dev);
 
 	reg = get_ctrl_reg_from_unit_addr(pdata->unit);
 	if (reg < 0)
@@ -305,7 +305,7 @@
 
 static int tps65910_buck_get_value(struct udevice *dev)
 {
-	struct tps65910_regulator_pdata *pdata = dev_get_platdata(dev);
+	struct tps65910_regulator_pdata *pdata = dev_get_plat(dev);
 
 	switch (pdata->unit) {
 	case TPS65910_UNIT_VIO:
@@ -324,7 +324,7 @@
 	int ret, reg_vdd, gain;
 	int val;
 	struct dm_regulator_uclass_plat *uc_pdata;
-	struct tps65910_regulator_pdata *pdata = dev_get_platdata(dev);
+	struct tps65910_regulator_pdata *pdata = dev_get_plat(dev);
 
 	switch (pdata->unit) {
 	case TPS65910_UNIT_VDD1:
@@ -369,7 +369,7 @@
 
 static int tps65910_buck_set_value(struct udevice *dev, int uV)
 {
-	struct tps65910_regulator_pdata *pdata = dev_get_platdata(dev);
+	struct tps65910_regulator_pdata *pdata = dev_get_plat(dev);
 
 	if (pdata->unit == TPS65910_UNIT_VIO)
 		return tps65910_regulator_set_value(dev, &smps_props_vio, uV);
@@ -380,7 +380,7 @@
 static int tps65910_boost_get_value(struct udevice *dev)
 {
 	int vout;
-	struct tps65910_regulator_pdata *pdata = dev_get_platdata(dev);
+	struct tps65910_regulator_pdata *pdata = dev_get_plat(dev);
 
 	vout = (pdata->supply >= 3000000) ? 5000000 : 0;
 	return vout;
@@ -391,7 +391,7 @@
 	struct udevice *supply;
 	int ret;
 	const char *supply_name;
-	struct tps65910_regulator_pdata *pdata = dev_get_platdata(dev);
+	struct tps65910_regulator_pdata *pdata = dev_get_plat(dev);
 
 	pdata->unit = dev_get_driver_data(dev);
 	if (pdata->unit > TPS65910_UNIT_VMMC)
diff --git a/drivers/ram/imxrt_sdram.c b/drivers/ram/imxrt_sdram.c
index 03d0d88..6a5d96f 100644
--- a/drivers/ram/imxrt_sdram.c
+++ b/drivers/ram/imxrt_sdram.c
@@ -224,7 +224,7 @@
 
 int imxrt_sdram_init(struct udevice *dev)
 {
-	struct imxrt_sdram_params *params = dev_get_platdata(dev);
+	struct imxrt_sdram_params *params = dev_get_plat(dev);
 	struct imxrt_sdram_mux *mux = params->sdram_mux;
 	struct imxrt_sdram_control *ctrl = params->sdram_control;
 	struct imxrt_sdram_timing *time = params->sdram_timing;
@@ -304,7 +304,7 @@
 
 static int imxrt_semc_ofdata_to_platdata(struct udevice *dev)
 {
-	struct imxrt_sdram_params *params = dev_get_platdata(dev);
+	struct imxrt_sdram_params *params = dev_get_plat(dev);
 	ofnode bank_node;
 	u8 bank = 0;
 
@@ -389,7 +389,7 @@
 
 static int imxrt_semc_probe(struct udevice *dev)
 {
-	struct imxrt_sdram_params *params = dev_get_platdata(dev);
+	struct imxrt_sdram_params *params = dev_get_plat(dev);
 	int ret;
 	fdt_addr_t addr;
 
diff --git a/drivers/ram/rockchip/dmc-rk3368.c b/drivers/ram/rockchip/dmc-rk3368.c
index 4e58630..1a19964 100644
--- a/drivers/ram/rockchip/dmc-rk3368.c
+++ b/drivers/ram/rockchip/dmc-rk3368.c
@@ -604,7 +604,7 @@
 static int sdram_col_row_detect(struct udevice *dev)
 {
 	struct dram_info *priv = dev_get_priv(dev);
-	struct rk3368_sdram_params *params = dev_get_platdata(dev);
+	struct rk3368_sdram_params *params = dev_get_plat(dev);
 	struct rk3368_ddr_pctl *pctl = priv->pctl;
 	struct rk3368_msch *msch = priv->msch;
 	const u32 test_pattern = 0x5aa5f00f;
@@ -774,7 +774,7 @@
 {
 	struct dram_info *priv = dev_get_priv(dev);
 	struct rk3368_pmu_grf *pmugrf = priv->pmugrf;
-	struct rk3368_sdram_params *params = dev_get_platdata(dev);
+	struct rk3368_sdram_params *params = dev_get_plat(dev);
 	const struct rk3288_sdram_channel *info = &params->chan;
 	u32 sys_reg = 0;
 	const int chan = 0;
@@ -798,7 +798,7 @@
 static int setup_sdram(struct udevice *dev)
 {
 	struct dram_info *priv = dev_get_priv(dev);
-	struct rk3368_sdram_params *params = dev_get_platdata(dev);
+	struct rk3368_sdram_params *params = dev_get_plat(dev);
 
 	struct rk3368_ddr_pctl *pctl = priv->pctl;
 	struct rk3368_ddrphy *ddrphy = priv->phy;
@@ -884,7 +884,7 @@
 	int ret = 0;
 
 #if !CONFIG_IS_ENABLED(OF_PLATDATA)
-	struct rk3368_sdram_params *plat = dev_get_platdata(dev);
+	struct rk3368_sdram_params *plat = dev_get_plat(dev);
 
 	ret = regmap_init_mem(dev_ofnode(dev), &plat->map);
 	if (ret)
@@ -897,7 +897,7 @@
 #if CONFIG_IS_ENABLED(OF_PLATDATA)
 static int conv_of_platdata(struct udevice *dev)
 {
-	struct rk3368_sdram_params *plat = dev_get_platdata(dev);
+	struct rk3368_sdram_params *plat = dev_get_plat(dev);
 	struct dtd_rockchip_rk3368_dmc *of_plat = &plat->of_plat;
 
 	plat->ddr_freq = of_plat->rockchip_ddr_frequency;
@@ -911,7 +911,7 @@
 static int rk3368_dmc_probe(struct udevice *dev)
 {
 #ifdef CONFIG_TPL_BUILD
-	struct rk3368_sdram_params *plat = dev_get_platdata(dev);
+	struct rk3368_sdram_params *plat = dev_get_plat(dev);
 	struct rk3368_ddr_pctl *pctl;
 	struct rk3368_ddrphy *ddrphy;
 	struct rk3368_cru *cru;
diff --git a/drivers/ram/rockchip/sdram_rk3188.c b/drivers/ram/rockchip/sdram_rk3188.c
index 9b9ef9c..e7ba0b9 100644
--- a/drivers/ram/rockchip/sdram_rk3188.c
+++ b/drivers/ram/rockchip/sdram_rk3188.c
@@ -809,7 +809,7 @@
 static int setup_sdram(struct udevice *dev)
 {
 	struct dram_info *priv = dev_get_priv(dev);
-	struct rk3188_sdram_params *params = dev_get_platdata(dev);
+	struct rk3188_sdram_params *params = dev_get_plat(dev);
 
 	return sdram_init(priv, params);
 }
@@ -817,7 +817,7 @@
 static int rk3188_dmc_ofdata_to_platdata(struct udevice *dev)
 {
 #if !CONFIG_IS_ENABLED(OF_PLATDATA)
-	struct rk3188_sdram_params *params = dev_get_platdata(dev);
+	struct rk3188_sdram_params *params = dev_get_plat(dev);
 	int ret;
 
 	/* rk3188 supports only one-channel */
@@ -855,7 +855,7 @@
 #if CONFIG_IS_ENABLED(OF_PLATDATA)
 static int conv_of_platdata(struct udevice *dev)
 {
-	struct rk3188_sdram_params *plat = dev_get_platdata(dev);
+	struct rk3188_sdram_params *plat = dev_get_plat(dev);
 	struct dtd_rockchip_rk3188_dmc *of_plat = &plat->of_plat;
 	int ret;
 
@@ -879,7 +879,7 @@
 static int rk3188_dmc_probe(struct udevice *dev)
 {
 #ifdef CONFIG_SPL_BUILD
-	struct rk3188_sdram_params *plat = dev_get_platdata(dev);
+	struct rk3188_sdram_params *plat = dev_get_plat(dev);
 	struct regmap *map;
 	struct udevice *dev_clk;
 	int ret;
diff --git a/drivers/ram/rockchip/sdram_rk322x.c b/drivers/ram/rockchip/sdram_rk322x.c
index 459d3a4..763c850 100644
--- a/drivers/ram/rockchip/sdram_rk322x.c
+++ b/drivers/ram/rockchip/sdram_rk322x.c
@@ -716,7 +716,7 @@
 static int rk322x_dmc_ofdata_to_platdata(struct udevice *dev)
 {
 #if !CONFIG_IS_ENABLED(OF_PLATDATA)
-	struct rk322x_sdram_params *params = dev_get_platdata(dev);
+	struct rk322x_sdram_params *params = dev_get_plat(dev);
 	const void *blob = gd->fdt_blob;
 	int node = dev_of_offset(dev);
 	int ret;
@@ -756,7 +756,7 @@
 #if CONFIG_IS_ENABLED(OF_PLATDATA)
 static int conv_of_platdata(struct udevice *dev)
 {
-	struct rk322x_sdram_params *plat = dev_get_platdata(dev);
+	struct rk322x_sdram_params *plat = dev_get_plat(dev);
 	struct dtd_rockchip_rk322x_dmc *of_plat = &plat->of_plat;
 	int ret;
 
@@ -780,7 +780,7 @@
 static int rk322x_dmc_probe(struct udevice *dev)
 {
 #ifdef CONFIG_TPL_BUILD
-	struct rk322x_sdram_params *plat = dev_get_platdata(dev);
+	struct rk322x_sdram_params *plat = dev_get_plat(dev);
 	int ret;
 	struct udevice *dev_clk;
 #endif
diff --git a/drivers/ram/rockchip/sdram_rk3288.c b/drivers/ram/rockchip/sdram_rk3288.c
index e034054..44ad28a 100644
--- a/drivers/ram/rockchip/sdram_rk3288.c
+++ b/drivers/ram/rockchip/sdram_rk3288.c
@@ -956,7 +956,7 @@
 static int setup_sdram(struct udevice *dev)
 {
 	struct dram_info *priv = dev_get_priv(dev);
-	struct rk3288_sdram_params *params = dev_get_platdata(dev);
+	struct rk3288_sdram_params *params = dev_get_plat(dev);
 
 # ifdef CONFIG_ROCKCHIP_FAST_SPL
 	if (priv->is_veyron) {
@@ -974,7 +974,7 @@
 static int rk3288_dmc_ofdata_to_platdata(struct udevice *dev)
 {
 #if !CONFIG_IS_ENABLED(OF_PLATDATA)
-	struct rk3288_sdram_params *params = dev_get_platdata(dev);
+	struct rk3288_sdram_params *params = dev_get_plat(dev);
 	int ret;
 
 	/* Rk3288 supports dual-channel, set default channel num to 2 */
@@ -1017,7 +1017,7 @@
 #if CONFIG_IS_ENABLED(OF_PLATDATA)
 static int conv_of_platdata(struct udevice *dev)
 {
-	struct rk3288_sdram_params *plat = dev_get_platdata(dev);
+	struct rk3288_sdram_params *plat = dev_get_plat(dev);
 	struct dtd_rockchip_rk3288_dmc *of_plat = &plat->of_plat;
 	int ret;
 
@@ -1042,7 +1042,7 @@
 {
 #if defined(CONFIG_TPL_BUILD) || \
 	(!defined(CONFIG_TPL) && defined(CONFIG_SPL_BUILD))
-	struct rk3288_sdram_params *plat = dev_get_platdata(dev);
+	struct rk3288_sdram_params *plat = dev_get_plat(dev);
 	struct udevice *dev_clk;
 	struct regmap *map;
 	int ret;
diff --git a/drivers/ram/rockchip/sdram_rk3328.c b/drivers/ram/rockchip/sdram_rk3328.c
index 634fd41..994a948 100644
--- a/drivers/ram/rockchip/sdram_rk3328.c
+++ b/drivers/ram/rockchip/sdram_rk3328.c
@@ -50,7 +50,7 @@
 #if CONFIG_IS_ENABLED(OF_PLATDATA)
 static int conv_of_platdata(struct udevice *dev)
 {
-	struct rockchip_dmc_plat *plat = dev_get_platdata(dev);
+	struct rockchip_dmc_plat *plat = dev_get_plat(dev);
 	struct dtd_rockchip_rk3328_dmc *dtplat = &plat->dtplat;
 	int ret;
 
@@ -515,7 +515,7 @@
 static int rk3328_dmc_init(struct udevice *dev)
 {
 	struct dram_info *priv = dev_get_priv(dev);
-	struct rockchip_dmc_plat *plat = dev_get_platdata(dev);
+	struct rockchip_dmc_plat *plat = dev_get_plat(dev);
 	int ret;
 
 #if !CONFIG_IS_ENABLED(OF_PLATDATA)
@@ -551,7 +551,7 @@
 static int rk3328_dmc_ofdata_to_platdata(struct udevice *dev)
 {
 #if !CONFIG_IS_ENABLED(OF_PLATDATA)
-	struct rockchip_dmc_plat *plat = dev_get_platdata(dev);
+	struct rockchip_dmc_plat *plat = dev_get_plat(dev);
 	int ret;
 
 	ret = dev_read_u32_array(dev, "rockchip,sdram-params",
diff --git a/drivers/ram/rockchip/sdram_rk3399.c b/drivers/ram/rockchip/sdram_rk3399.c
index b1d1f92..07977bc 100644
--- a/drivers/ram/rockchip/sdram_rk3399.c
+++ b/drivers/ram/rockchip/sdram_rk3399.c
@@ -3014,7 +3014,7 @@
 static int rk3399_dmc_ofdata_to_platdata(struct udevice *dev)
 {
 #if !CONFIG_IS_ENABLED(OF_PLATDATA)
-	struct rockchip_dmc_plat *plat = dev_get_platdata(dev);
+	struct rockchip_dmc_plat *plat = dev_get_plat(dev);
 	int ret;
 
 	ret = dev_read_u32_array(dev, "rockchip,sdram-params",
@@ -3036,7 +3036,7 @@
 #if CONFIG_IS_ENABLED(OF_PLATDATA)
 static int conv_of_platdata(struct udevice *dev)
 {
-	struct rockchip_dmc_plat *plat = dev_get_platdata(dev);
+	struct rockchip_dmc_plat *plat = dev_get_plat(dev);
 	struct dtd_rockchip_rk3399_dmc *dtplat = &plat->dtplat;
 	int ret;
 
@@ -3067,7 +3067,7 @@
 static int rk3399_dmc_init(struct udevice *dev)
 {
 	struct dram_info *priv = dev_get_priv(dev);
-	struct rockchip_dmc_plat *plat = dev_get_platdata(dev);
+	struct rockchip_dmc_plat *plat = dev_get_plat(dev);
 	int ret;
 #if !CONFIG_IS_ENABLED(OF_PLATDATA)
 	struct rk3399_sdram_params *params = &plat->sdram_params;
diff --git a/drivers/ram/sifive/fu540_ddr.c b/drivers/ram/sifive/fu540_ddr.c
index 97e32f3..5a7484c 100644
--- a/drivers/ram/sifive/fu540_ddr.c
+++ b/drivers/ram/sifive/fu540_ddr.c
@@ -230,7 +230,7 @@
 static int fu540_ddr_setup(struct udevice *dev)
 {
 	struct fu540_ddr_info *priv = dev_get_priv(dev);
-	struct sifive_dmc_plat *plat = dev_get_platdata(dev);
+	struct sifive_dmc_plat *plat = dev_get_plat(dev);
 	struct fu540_ddr_params *params = &plat->ddr_params;
 	volatile u32 *denali_ctl =  priv->ctl->denali_ctl;
 	volatile u32 *denali_phy =  priv->phy->denali_phy;
diff --git a/drivers/ram/stm32_sdram.c b/drivers/ram/stm32_sdram.c
index ce3ea03..da25d37 100644
--- a/drivers/ram/stm32_sdram.c
+++ b/drivers/ram/stm32_sdram.c
@@ -161,7 +161,7 @@
 
 int stm32_sdram_init(struct udevice *dev)
 {
-	struct stm32_sdram_params *params = dev_get_platdata(dev);
+	struct stm32_sdram_params *params = dev_get_plat(dev);
 	struct stm32_sdram_control *control;
 	struct stm32_sdram_timing *timing;
 	struct stm32_fmc_regs *regs = params->base;
@@ -258,7 +258,7 @@
 
 static int stm32_fmc_ofdata_to_platdata(struct udevice *dev)
 {
-	struct stm32_sdram_params *params = dev_get_platdata(dev);
+	struct stm32_sdram_params *params = dev_get_plat(dev);
 	struct bank_params *bank_params;
 	struct ofnode_phandle_args args;
 	u32 *syscfg_base;
@@ -355,7 +355,7 @@
 
 static int stm32_fmc_probe(struct udevice *dev)
 {
-	struct stm32_sdram_params *params = dev_get_platdata(dev);
+	struct stm32_sdram_params *params = dev_get_plat(dev);
 	int ret;
 	fdt_addr_t addr;
 
diff --git a/drivers/rng/meson-rng.c b/drivers/rng/meson-rng.c
index e7febc4..1d0b540 100644
--- a/drivers/rng/meson-rng.c
+++ b/drivers/rng/meson-rng.c
@@ -26,7 +26,7 @@
  */
 static int meson_rng_read(struct udevice *dev, void *data, size_t len)
 {
-	struct meson_rng_platdata *pdata = dev_get_platdata(dev);
+	struct meson_rng_platdata *pdata = dev_get_plat(dev);
 	char *buffer = (char *)data;
 
 	while (len) {
@@ -52,7 +52,7 @@
  */
 static int meson_rng_probe(struct udevice *dev)
 {
-	struct meson_rng_platdata *pdata = dev_get_platdata(dev);
+	struct meson_rng_platdata *pdata = dev_get_plat(dev);
 	int err;
 
 	err = clk_enable(&pdata->clk);
@@ -70,7 +70,7 @@
  */
 static int meson_rng_remove(struct udevice *dev)
 {
-	struct meson_rng_platdata *pdata = dev_get_platdata(dev);
+	struct meson_rng_platdata *pdata = dev_get_plat(dev);
 
 	return clk_disable(&pdata->clk);
 }
@@ -83,7 +83,7 @@
  */
 static int meson_rng_ofdata_to_platdata(struct udevice *dev)
 {
-	struct meson_rng_platdata *pdata = dev_get_platdata(dev);
+	struct meson_rng_platdata *pdata = dev_get_plat(dev);
 	int err;
 
 	pdata->base = dev_read_addr(dev);
diff --git a/drivers/rng/stm32mp1_rng.c b/drivers/rng/stm32mp1_rng.c
index abfcbab..34281d3 100644
--- a/drivers/rng/stm32mp1_rng.c
+++ b/drivers/rng/stm32mp1_rng.c
@@ -41,7 +41,7 @@
 	int retval, i;
 	u32 sr, count, reg;
 	size_t increment;
-	struct stm32_rng_platdata *pdata = dev_get_platdata(dev);
+	struct stm32_rng_platdata *pdata = dev_get_plat(dev);
 
 	while (len > 0) {
 		retval = readl_poll_timeout(pdata->base + RNG_SR, sr,
@@ -106,7 +106,7 @@
 
 static int stm32_rng_probe(struct udevice *dev)
 {
-	struct stm32_rng_platdata *pdata = dev_get_platdata(dev);
+	struct stm32_rng_platdata *pdata = dev_get_plat(dev);
 
 	reset_assert(&pdata->rst);
 	udelay(20);
@@ -117,14 +117,14 @@
 
 static int stm32_rng_remove(struct udevice *dev)
 {
-	struct stm32_rng_platdata *pdata = dev_get_platdata(dev);
+	struct stm32_rng_platdata *pdata = dev_get_plat(dev);
 
 	return stm32_rng_cleanup(pdata);
 }
 
 static int stm32_rng_ofdata_to_platdata(struct udevice *dev)
 {
-	struct stm32_rng_platdata *pdata = dev_get_platdata(dev);
+	struct stm32_rng_platdata *pdata = dev_get_plat(dev);
 	int err;
 
 	pdata->base = dev_read_addr(dev);
diff --git a/drivers/rtc/i2c_rtc_emul.c b/drivers/rtc/i2c_rtc_emul.c
index 59043a7..5a2a154 100644
--- a/drivers/rtc/i2c_rtc_emul.c
+++ b/drivers/rtc/i2c_rtc_emul.c
@@ -50,7 +50,7 @@
 long sandbox_i2c_rtc_set_offset(struct udevice *dev, bool use_system_time,
 				int offset)
 {
-	struct sandbox_i2c_rtc_plat_data *plat = dev_get_platdata(dev);
+	struct sandbox_i2c_rtc_plat_data *plat = dev_get_plat(dev);
 	long old_offset;
 
 	old_offset = plat->offset;
@@ -63,7 +63,7 @@
 
 long sandbox_i2c_rtc_get_set_base_time(struct udevice *dev, long base_time)
 {
-	struct sandbox_i2c_rtc_plat_data *plat = dev_get_platdata(dev);
+	struct sandbox_i2c_rtc_plat_data *plat = dev_get_plat(dev);
 	long old_base_time;
 
 	old_base_time = plat->base_time;
@@ -75,7 +75,7 @@
 
 static void reset_time(struct udevice *dev)
 {
-	struct sandbox_i2c_rtc_plat_data *plat = dev_get_platdata(dev);
+	struct sandbox_i2c_rtc_plat_data *plat = dev_get_plat(dev);
 	struct rtc_time now;
 
 	os_localtime(&now);
@@ -86,7 +86,7 @@
 
 static int sandbox_i2c_rtc_get(struct udevice *dev, struct rtc_time *time)
 {
-	struct sandbox_i2c_rtc_plat_data *plat = dev_get_platdata(dev);
+	struct sandbox_i2c_rtc_plat_data *plat = dev_get_plat(dev);
 	struct rtc_time tm_now;
 	long now;
 
@@ -104,7 +104,7 @@
 
 static int sandbox_i2c_rtc_set(struct udevice *dev, const struct rtc_time *time)
 {
-	struct sandbox_i2c_rtc_plat_data *plat = dev_get_platdata(dev);
+	struct sandbox_i2c_rtc_plat_data *plat = dev_get_plat(dev);
 	struct rtc_time tm_now;
 	long now;
 
@@ -122,7 +122,7 @@
 /* Update the current time in the registers */
 static int sandbox_i2c_rtc_prepare_read(struct udevice *emul)
 {
-	struct sandbox_i2c_rtc_plat_data *plat = dev_get_platdata(emul);
+	struct sandbox_i2c_rtc_plat_data *plat = dev_get_plat(emul);
 	struct rtc_time time;
 	int ret;
 
@@ -143,7 +143,7 @@
 
 static int sandbox_i2c_rtc_complete_write(struct udevice *emul)
 {
-	struct sandbox_i2c_rtc_plat_data *plat = dev_get_platdata(emul);
+	struct sandbox_i2c_rtc_plat_data *plat = dev_get_plat(emul);
 	struct rtc_time time;
 	int ret;
 
@@ -165,7 +165,7 @@
 static int sandbox_i2c_rtc_xfer(struct udevice *emul, struct i2c_msg *msg,
 				int nmsgs)
 {
-	struct sandbox_i2c_rtc_plat_data *plat = dev_get_platdata(emul);
+	struct sandbox_i2c_rtc_plat_data *plat = dev_get_plat(emul);
 	uint offset = 0;
 	int ret;
 
diff --git a/drivers/rtc/mvrtc.c b/drivers/rtc/mvrtc.c
index ed057f7..731ce8d 100644
--- a/drivers/rtc/mvrtc.c
+++ b/drivers/rtc/mvrtc.c
@@ -133,7 +133,7 @@
 #ifdef CONFIG_DM_RTC
 static int mv_rtc_get(struct udevice *dev, struct rtc_time *tm)
 {
-	struct mvrtc_pdata *pdata = dev_get_platdata(dev);
+	struct mvrtc_pdata *pdata = dev_get_plat(dev);
 	struct mvrtc_registers *regs = (struct mvrtc_registers *)pdata->iobase;
 
 	return __mv_rtc_get(regs, tm);
@@ -141,7 +141,7 @@
 
 static int mv_rtc_set(struct udevice *dev, const struct rtc_time *tm)
 {
-	struct mvrtc_pdata *pdata = dev_get_platdata(dev);
+	struct mvrtc_pdata *pdata = dev_get_plat(dev);
 	struct mvrtc_registers *regs = (struct mvrtc_registers *)pdata->iobase;
 
 	return __mv_rtc_set(regs, tm);
@@ -149,7 +149,7 @@
 
 static int mv_rtc_reset(struct udevice *dev)
 {
-	struct mvrtc_pdata *pdata = dev_get_platdata(dev);
+	struct mvrtc_pdata *pdata = dev_get_plat(dev);
 	struct mvrtc_registers *regs = (struct mvrtc_registers *)pdata->iobase;
 
 	__mv_rtc_reset(regs);
@@ -170,7 +170,7 @@
 
 static int mv_rtc_ofdata_to_platdata(struct udevice *dev)
 {
-	struct mvrtc_pdata *pdata = dev_get_platdata(dev);
+	struct mvrtc_pdata *pdata = dev_get_plat(dev);
 
 	pdata->iobase = dev_read_addr(dev);
 	return 0;
diff --git a/drivers/rtc/pl031.c b/drivers/rtc/pl031.c
index 93d5a6a..df79c1f 100644
--- a/drivers/rtc/pl031.c
+++ b/drivers/rtc/pl031.c
@@ -35,14 +35,14 @@
 
 static inline u32 pl031_read_reg(struct udevice *dev, int reg)
 {
-	struct pl031_platdata *pdata = dev_get_platdata(dev);
+	struct pl031_platdata *pdata = dev_get_plat(dev);
 
 	return readl(pdata->base + reg);
 }
 
 static inline u32 pl031_write_reg(struct udevice *dev, int reg, u32 value)
 {
-	struct pl031_platdata *pdata = dev_get_platdata(dev);
+	struct pl031_platdata *pdata = dev_get_plat(dev);
 
 	return writel(value, pdata->base + reg);
 }
@@ -124,7 +124,7 @@
 
 static int pl031_ofdata_to_platdata(struct udevice *dev)
 {
-	struct pl031_platdata *pdata = dev_get_platdata(dev);
+	struct pl031_platdata *pdata = dev_get_plat(dev);
 
 	pdata->base = dev_read_addr(dev);
 
diff --git a/drivers/serial/altera_jtag_uart.c b/drivers/serial/altera_jtag_uart.c
index 01dc41e..e855ca4 100644
--- a/drivers/serial/altera_jtag_uart.c
+++ b/drivers/serial/altera_jtag_uart.c
@@ -93,7 +93,7 @@
 
 static int altera_jtaguart_ofdata_to_platdata(struct udevice *dev)
 {
-	struct altera_jtaguart_platdata *plat = dev_get_platdata(dev);
+	struct altera_jtaguart_platdata *plat = dev_get_plat(dev);
 
 	plat->regs = map_physmem(dev_read_addr(dev),
 				 sizeof(struct altera_jtaguart_regs),
diff --git a/drivers/serial/altera_uart.c b/drivers/serial/altera_uart.c
index 68169d5..8d27382 100644
--- a/drivers/serial/altera_uart.c
+++ b/drivers/serial/altera_uart.c
@@ -85,7 +85,7 @@
 
 static int altera_uart_ofdata_to_platdata(struct udevice *dev)
 {
-	struct altera_uart_platdata *plat = dev_get_platdata(dev);
+	struct altera_uart_platdata *plat = dev_get_plat(dev);
 
 	plat->regs = map_physmem(dev_read_addr(dev),
 				 sizeof(struct altera_uart_regs),
diff --git a/drivers/serial/lpc32xx_hsuart.c b/drivers/serial/lpc32xx_hsuart.c
index 6b7bf3f..4e34643 100644
--- a/drivers/serial/lpc32xx_hsuart.c
+++ b/drivers/serial/lpc32xx_hsuart.c
@@ -85,7 +85,7 @@
 
 static int lpc32xx_hsuart_probe(struct udevice *dev)
 {
-	struct lpc32xx_hsuart_platdata *plat = dev_get_platdata(dev);
+	struct lpc32xx_hsuart_platdata *plat = dev_get_plat(dev);
 	struct lpc32xx_hsuart_priv *priv = dev_get_priv(dev);
 
 	priv->hsuart = (struct hsuart_regs *)plat->base;
diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c
index 88a486a..6bc8c99 100644
--- a/drivers/serial/ns16550.c
+++ b/drivers/serial/ns16550.c
@@ -519,7 +519,7 @@
 	if (!ret)
 		reset_deassert_bulk(&reset_bulk);
 
-	com_port->plat = dev_get_platdata(dev);
+	com_port->plat = dev_get_plat(dev);
 	NS16550_init(com_port, -1);
 
 	return 0;
diff --git a/drivers/serial/serial_arc.c b/drivers/serial/serial_arc.c
index 0c7418f..8964fa7 100644
--- a/drivers/serial/serial_arc.c
+++ b/drivers/serial/serial_arc.c
@@ -111,7 +111,7 @@
 
 static int arc_serial_ofdata_to_platdata(struct udevice *dev)
 {
-	struct arc_serial_platdata *plat = dev_get_platdata(dev);
+	struct arc_serial_platdata *plat = dev_get_plat(dev);
 	DECLARE_GLOBAL_DATA_PTR;
 
 	plat->reg = dev_read_addr_ptr(dev);
diff --git a/drivers/serial/serial_bcm283x_mu.c b/drivers/serial/serial_bcm283x_mu.c
index d11bdd4..1d64496 100644
--- a/drivers/serial/serial_bcm283x_mu.c
+++ b/drivers/serial/serial_bcm283x_mu.c
@@ -55,7 +55,7 @@
 
 static int bcm283x_mu_serial_setbrg(struct udevice *dev, int baudrate)
 {
-	struct bcm283x_mu_serial_platdata *plat = dev_get_platdata(dev);
+	struct bcm283x_mu_serial_platdata *plat = dev_get_plat(dev);
 	struct bcm283x_mu_priv *priv = dev_get_priv(dev);
 	struct bcm283x_mu_regs *regs = priv->regs;
 	u32 divider;
@@ -158,7 +158,7 @@
 
 static int bcm283x_mu_serial_probe(struct udevice *dev)
 {
-	struct bcm283x_mu_serial_platdata *plat = dev_get_platdata(dev);
+	struct bcm283x_mu_serial_platdata *plat = dev_get_plat(dev);
 	struct bcm283x_mu_priv *priv = dev_get_priv(dev);
 	fdt_addr_t addr;
 
diff --git a/drivers/serial/serial_bcm283x_pl011.c b/drivers/serial/serial_bcm283x_pl011.c
index 8d2f249..6d7a87c 100644
--- a/drivers/serial/serial_bcm283x_pl011.c
+++ b/drivers/serial/serial_bcm283x_pl011.c
@@ -35,7 +35,7 @@
 
 static int bcm283x_pl011_serial_probe(struct udevice *dev)
 {
-	struct pl01x_serial_platdata *plat = dev_get_platdata(dev);
+	struct pl01x_serial_platdata *plat = dev_get_plat(dev);
 	int ret;
 
 	/* Don't spawn the device if it's not muxed */
diff --git a/drivers/serial/serial_coreboot.c b/drivers/serial/serial_coreboot.c
index 17072e4..dba0ae4 100644
--- a/drivers/serial/serial_coreboot.c
+++ b/drivers/serial/serial_coreboot.c
@@ -13,7 +13,7 @@
 
 static int coreboot_ofdata_to_platdata(struct udevice *dev)
 {
-	struct ns16550_platdata *plat = dev_get_platdata(dev);
+	struct ns16550_platdata *plat = dev_get_plat(dev);
 	struct cb_serial *cb_info = lib_sysinfo.serial;
 
 	plat->base = cb_info->baseaddr;
diff --git a/drivers/serial/serial_intel_mid.c b/drivers/serial/serial_intel_mid.c
index 26c6867..2ee7e2d 100644
--- a/drivers/serial/serial_intel_mid.c
+++ b/drivers/serial/serial_intel_mid.c
@@ -33,7 +33,7 @@
 
 static int mid_serial_probe(struct udevice *dev)
 {
-	struct ns16550_platdata *plat = dev_get_platdata(dev);
+	struct ns16550_platdata *plat = dev_get_plat(dev);
 
 	/*
 	 * Initialize fractional divider correctly for Intel Edison
diff --git a/drivers/serial/serial_lpuart.c b/drivers/serial/serial_lpuart.c
index e6e1b1d..e6b73e1 100644
--- a/drivers/serial/serial_lpuart.c
+++ b/drivers/serial/serial_lpuart.c
@@ -146,7 +146,7 @@
 static void _lpuart_serial_setbrg(struct udevice *dev,
 				  int baudrate)
 {
-	struct lpuart_serial_platdata *plat = dev_get_platdata(dev);
+	struct lpuart_serial_platdata *plat = dev_get_plat(dev);
 	struct lpuart_fsl *base = plat->reg;
 	u32 clk;
 	u16 sbr;
@@ -206,7 +206,7 @@
  */
 static int _lpuart_serial_init(struct udevice *dev)
 {
-	struct lpuart_serial_platdata *plat = dev_get_platdata(dev);
+	struct lpuart_serial_platdata *plat = dev_get_plat(dev);
 	struct lpuart_fsl *base = (struct lpuart_fsl *)plat->reg;
 	u8 ctrl;
 
@@ -235,7 +235,7 @@
 static void _lpuart32_serial_setbrg_7ulp(struct udevice *dev,
 					 int baudrate)
 {
-	struct lpuart_serial_platdata *plat = dev_get_platdata(dev);
+	struct lpuart_serial_platdata *plat = dev_get_plat(dev);
 	struct lpuart_fsl_reg32 *base = plat->reg;
 	u32 sbr, osr, baud_diff, tmp_osr, tmp_sbr, tmp_diff, tmp;
 	u32 clk;
@@ -304,7 +304,7 @@
 static void _lpuart32_serial_setbrg(struct udevice *dev,
 				    int baudrate)
 {
-	struct lpuart_serial_platdata *plat = dev_get_platdata(dev);
+	struct lpuart_serial_platdata *plat = dev_get_plat(dev);
 	struct lpuart_fsl_reg32 *base = plat->reg;
 	u32 clk;
 	u32 sbr;
@@ -386,7 +386,7 @@
  */
 static int _lpuart32_serial_init(struct udevice *dev)
 {
-	struct lpuart_serial_platdata *plat = dev_get_platdata(dev);
+	struct lpuart_serial_platdata *plat = dev_get_plat(dev);
 	struct lpuart_fsl_reg32 *base = (struct lpuart_fsl_reg32 *)plat->reg;
 	u32 val, tx_fifo_size;
 
@@ -428,7 +428,7 @@
 
 static int lpuart_serial_setbrg(struct udevice *dev, int baudrate)
 {
-	struct lpuart_serial_platdata *plat = dev_get_platdata(dev);
+	struct lpuart_serial_platdata *plat = dev_get_plat(dev);
 
 	if (is_lpuart32(dev)) {
 		if (plat->devtype == DEV_MX7ULP || plat->devtype == DEV_IMX8 ||
diff --git a/drivers/serial/serial_mcf.c b/drivers/serial/serial_mcf.c
index 40f0b01..cddebc3 100644
--- a/drivers/serial/serial_mcf.c
+++ b/drivers/serial/serial_mcf.c
@@ -142,7 +142,7 @@
 
 static int coldfire_ofdata_to_platdata(struct udevice *dev)
 {
-	struct coldfire_serial_platdata *plat = dev_get_platdata(dev);
+	struct coldfire_serial_platdata *plat = dev_get_plat(dev);
 	fdt_addr_t addr_base;
 
 	addr_base = dev_read_addr(dev);
diff --git a/drivers/serial/serial_mvebu_a3700.c b/drivers/serial/serial_mvebu_a3700.c
index 690b7c6..b1da874 100644
--- a/drivers/serial/serial_mvebu_a3700.c
+++ b/drivers/serial/serial_mvebu_a3700.c
@@ -32,7 +32,7 @@
 
 static int mvebu_serial_putc(struct udevice *dev, const char ch)
 {
-	struct mvebu_platdata *plat = dev_get_platdata(dev);
+	struct mvebu_platdata *plat = dev_get_plat(dev);
 	void __iomem *base = plat->base;
 
 	while (readl(base + UART_STATUS_REG) & UART_STATUS_TXFIFO_FULL)
@@ -45,7 +45,7 @@
 
 static int mvebu_serial_getc(struct udevice *dev)
 {
-	struct mvebu_platdata *plat = dev_get_platdata(dev);
+	struct mvebu_platdata *plat = dev_get_plat(dev);
 	void __iomem *base = plat->base;
 
 	while (!(readl(base + UART_STATUS_REG) & UART_STATUS_RX_RDY))
@@ -56,7 +56,7 @@
 
 static int mvebu_serial_pending(struct udevice *dev, bool input)
 {
-	struct mvebu_platdata *plat = dev_get_platdata(dev);
+	struct mvebu_platdata *plat = dev_get_plat(dev);
 	void __iomem *base = plat->base;
 
 	if (readl(base + UART_STATUS_REG) & UART_STATUS_RX_RDY)
@@ -67,7 +67,7 @@
 
 static int mvebu_serial_setbrg(struct udevice *dev, int baudrate)
 {
-	struct mvebu_platdata *plat = dev_get_platdata(dev);
+	struct mvebu_platdata *plat = dev_get_plat(dev);
 	void __iomem *base = plat->base;
 
 	/*
@@ -87,7 +87,7 @@
 
 static int mvebu_serial_probe(struct udevice *dev)
 {
-	struct mvebu_platdata *plat = dev_get_platdata(dev);
+	struct mvebu_platdata *plat = dev_get_plat(dev);
 	void __iomem *base = plat->base;
 
 	/* reset FIFOs */
@@ -102,7 +102,7 @@
 
 static int mvebu_serial_ofdata_to_platdata(struct udevice *dev)
 {
-	struct mvebu_platdata *plat = dev_get_platdata(dev);
+	struct mvebu_platdata *plat = dev_get_plat(dev);
 
 	plat->base = dev_read_addr_ptr(dev);
 
diff --git a/drivers/serial/serial_pl01x.c b/drivers/serial/serial_pl01x.c
index 3a876fe..5ca1c07 100644
--- a/drivers/serial/serial_pl01x.c
+++ b/drivers/serial/serial_pl01x.c
@@ -281,7 +281,7 @@
 
 int pl01x_serial_setbrg(struct udevice *dev, int baudrate)
 {
-	struct pl01x_serial_platdata *plat = dev_get_platdata(dev);
+	struct pl01x_serial_platdata *plat = dev_get_plat(dev);
 	struct pl01x_priv *priv = dev_get_priv(dev);
 
 	if (!plat->skip_init) {
@@ -294,7 +294,7 @@
 
 int pl01x_serial_probe(struct udevice *dev)
 {
-	struct pl01x_serial_platdata *plat = dev_get_platdata(dev);
+	struct pl01x_serial_platdata *plat = dev_get_plat(dev);
 	struct pl01x_priv *priv = dev_get_priv(dev);
 
 	priv->regs = (struct pl01x_regs *)plat->base;
@@ -350,7 +350,7 @@
 
 int pl01x_serial_ofdata_to_platdata(struct udevice *dev)
 {
-	struct pl01x_serial_platdata *plat = dev_get_platdata(dev);
+	struct pl01x_serial_platdata *plat = dev_get_plat(dev);
 	struct clk clk;
 	fdt_addr_t addr;
 	int ret;
diff --git a/drivers/serial/serial_rockchip.c b/drivers/serial/serial_rockchip.c
index e00df4b..930103a 100644
--- a/drivers/serial/serial_rockchip.c
+++ b/drivers/serial/serial_rockchip.c
@@ -27,7 +27,7 @@
 
 static int rockchip_serial_probe(struct udevice *dev)
 {
-	struct rockchip_uart_platdata *plat = dev_get_platdata(dev);
+	struct rockchip_uart_platdata *plat = dev_get_plat(dev);
 
 	/* Create some new platform data for the standard driver */
 	plat->plat.base = plat->dtplat.reg[0];
diff --git a/drivers/serial/serial_sh.c b/drivers/serial/serial_sh.c
index 0cac2b9..d1f24bb 100644
--- a/drivers/serial/serial_sh.c
+++ b/drivers/serial/serial_sh.c
@@ -169,7 +169,7 @@
 
 static int sh_serial_setbrg(struct udevice *dev, int baudrate)
 {
-	struct sh_serial_platdata *plat = dev_get_platdata(dev);
+	struct sh_serial_platdata *plat = dev_get_plat(dev);
 	struct uart_port *priv = dev_get_priv(dev);
 
 	sh_serial_setbrg_generic(priv, plat->clk, baudrate);
@@ -179,7 +179,7 @@
 
 static int sh_serial_probe(struct udevice *dev)
 {
-	struct sh_serial_platdata *plat = dev_get_platdata(dev);
+	struct sh_serial_platdata *plat = dev_get_plat(dev);
 	struct uart_port *priv = dev_get_priv(dev);
 
 	priv->membase	= (unsigned char *)plat->base;
@@ -209,7 +209,7 @@
 
 static int sh_serial_ofdata_to_platdata(struct udevice *dev)
 {
-	struct sh_serial_platdata *plat = dev_get_platdata(dev);
+	struct sh_serial_platdata *plat = dev_get_plat(dev);
 	struct clk sh_serial_clk;
 	fdt_addr_t addr;
 	int ret;
diff --git a/drivers/serial/serial_sifive.c b/drivers/serial/serial_sifive.c
index 276f090..e9d4d91 100644
--- a/drivers/serial/serial_sifive.c
+++ b/drivers/serial/serial_sifive.c
@@ -105,7 +105,7 @@
 {
 	int ret;
 	struct clk clk;
-	struct sifive_uart_platdata *plat = dev_get_platdata(dev);
+	struct sifive_uart_platdata *plat = dev_get_plat(dev);
 	u32 clock = 0;
 
 	ret = clk_get_by_index(dev, 0, &clk);
@@ -131,7 +131,7 @@
 
 static int sifive_serial_probe(struct udevice *dev)
 {
-	struct sifive_uart_platdata *plat = dev_get_platdata(dev);
+	struct sifive_uart_platdata *plat = dev_get_plat(dev);
 
 	/* No need to reinitialize the UART after relocation */
 	if (gd->flags & GD_FLG_RELOC)
@@ -145,7 +145,7 @@
 static int sifive_serial_getc(struct udevice *dev)
 {
 	int c;
-	struct sifive_uart_platdata *plat = dev_get_platdata(dev);
+	struct sifive_uart_platdata *plat = dev_get_plat(dev);
 	struct uart_sifive *regs = plat->regs;
 
 	while ((c = _sifive_serial_getc(regs)) == -EAGAIN) ;
@@ -156,7 +156,7 @@
 static int sifive_serial_putc(struct udevice *dev, const char ch)
 {
 	int rc;
-	struct sifive_uart_platdata *plat = dev_get_platdata(dev);
+	struct sifive_uart_platdata *plat = dev_get_plat(dev);
 
 	while ((rc = _sifive_serial_putc(plat->regs, ch)) == -EAGAIN) ;
 
@@ -165,7 +165,7 @@
 
 static int sifive_serial_pending(struct udevice *dev, bool input)
 {
-	struct sifive_uart_platdata *plat = dev_get_platdata(dev);
+	struct sifive_uart_platdata *plat = dev_get_plat(dev);
 	struct uart_sifive *regs = plat->regs;
 
 	if (input)
@@ -176,7 +176,7 @@
 
 static int sifive_serial_ofdata_to_platdata(struct udevice *dev)
 {
-	struct sifive_uart_platdata *plat = dev_get_platdata(dev);
+	struct sifive_uart_platdata *plat = dev_get_plat(dev);
 
 	plat->regs = (struct uart_sifive *)dev_read_addr(dev);
 	if (IS_ERR(plat->regs))
diff --git a/drivers/serial/serial_stm32.c b/drivers/serial/serial_stm32.c
index 210b5b5..9b56b24 100644
--- a/drivers/serial/serial_stm32.c
+++ b/drivers/serial/serial_stm32.c
@@ -44,7 +44,7 @@
 
 static int stm32_serial_setbrg(struct udevice *dev, int baudrate)
 {
-	struct stm32x7_serial_platdata *plat = dev_get_platdata(dev);
+	struct stm32x7_serial_platdata *plat = dev_get_plat(dev);
 
 	_stm32_serial_setbrg(plat->base, plat->uart_info,
 			     plat->clock_rate, baudrate);
@@ -54,7 +54,7 @@
 
 static int stm32_serial_setconfig(struct udevice *dev, uint serial_config)
 {
-	struct stm32x7_serial_platdata *plat = dev_get_platdata(dev);
+	struct stm32x7_serial_platdata *plat = dev_get_plat(dev);
 	bool stm32f4 = plat->uart_info->stm32f4;
 	u8 uart_enable_bit = plat->uart_info->uart_enable_bit;
 	u32 cr1 = plat->base + CR1_OFFSET(stm32f4);
@@ -102,7 +102,7 @@
 
 static int stm32_serial_getc(struct udevice *dev)
 {
-	struct stm32x7_serial_platdata *plat = dev_get_platdata(dev);
+	struct stm32x7_serial_platdata *plat = dev_get_plat(dev);
 	bool stm32f4 = plat->uart_info->stm32f4;
 	fdt_addr_t base = plat->base;
 	u32 isr = readl(base + ISR_OFFSET(stm32f4));
@@ -139,14 +139,14 @@
 
 static int stm32_serial_putc(struct udevice *dev, const char c)
 {
-	struct stm32x7_serial_platdata *plat = dev_get_platdata(dev);
+	struct stm32x7_serial_platdata *plat = dev_get_plat(dev);
 
 	return _stm32_serial_putc(plat->base, plat->uart_info, c);
 }
 
 static int stm32_serial_pending(struct udevice *dev, bool input)
 {
-	struct stm32x7_serial_platdata *plat = dev_get_platdata(dev);
+	struct stm32x7_serial_platdata *plat = dev_get_plat(dev);
 	bool stm32f4 = plat->uart_info->stm32f4;
 	fdt_addr_t base = plat->base;
 
@@ -175,7 +175,7 @@
 
 static int stm32_serial_probe(struct udevice *dev)
 {
-	struct stm32x7_serial_platdata *plat = dev_get_platdata(dev);
+	struct stm32x7_serial_platdata *plat = dev_get_plat(dev);
 	struct clk clk;
 	struct reset_ctl reset;
 	int ret;
@@ -219,7 +219,7 @@
 
 static int stm32_serial_ofdata_to_platdata(struct udevice *dev)
 {
-	struct stm32x7_serial_platdata *plat = dev_get_platdata(dev);
+	struct stm32x7_serial_platdata *plat = dev_get_plat(dev);
 
 	plat->base = dev_read_addr(dev);
 	if (plat->base == FDT_ADDR_T_NONE)
diff --git a/drivers/serial/serial_xuartlite.c b/drivers/serial/serial_xuartlite.c
index eb76c78..ea90fdb 100644
--- a/drivers/serial/serial_xuartlite.c
+++ b/drivers/serial/serial_xuartlite.c
@@ -54,7 +54,7 @@
 
 static int uartlite_serial_putc(struct udevice *dev, const char ch)
 {
-	struct uartlite_platdata *plat = dev_get_platdata(dev);
+	struct uartlite_platdata *plat = dev_get_plat(dev);
 	struct uartlite *regs = plat->regs;
 
 	if (uart_in32(&regs->status) & SR_TX_FIFO_FULL)
@@ -67,7 +67,7 @@
 
 static int uartlite_serial_getc(struct udevice *dev)
 {
-	struct uartlite_platdata *plat = dev_get_platdata(dev);
+	struct uartlite_platdata *plat = dev_get_plat(dev);
 	struct uartlite *regs = plat->regs;
 
 	if (!(uart_in32(&regs->status) & SR_RX_FIFO_VALID_DATA))
@@ -78,7 +78,7 @@
 
 static int uartlite_serial_pending(struct udevice *dev, bool input)
 {
-	struct uartlite_platdata *plat = dev_get_platdata(dev);
+	struct uartlite_platdata *plat = dev_get_plat(dev);
 	struct uartlite *regs = plat->regs;
 
 	if (input)
@@ -89,7 +89,7 @@
 
 static int uartlite_serial_probe(struct udevice *dev)
 {
-	struct uartlite_platdata *plat = dev_get_platdata(dev);
+	struct uartlite_platdata *plat = dev_get_plat(dev);
 	struct uartlite *regs = plat->regs;
 	int ret;
 
@@ -108,7 +108,7 @@
 
 static int uartlite_serial_ofdata_to_platdata(struct udevice *dev)
 {
-	struct uartlite_platdata *plat = dev_get_platdata(dev);
+	struct uartlite_platdata *plat = dev_get_plat(dev);
 
 	plat->regs = dev_read_addr_ptr(dev);
 
diff --git a/drivers/serial/serial_zynq.c b/drivers/serial/serial_zynq.c
index 7984b61..1bcdf8c 100644
--- a/drivers/serial/serial_zynq.c
+++ b/drivers/serial/serial_zynq.c
@@ -107,7 +107,7 @@
 
 static int zynq_serial_setbrg(struct udevice *dev, int baudrate)
 {
-	struct zynq_uart_platdata *plat = dev_get_platdata(dev);
+	struct zynq_uart_platdata *plat = dev_get_plat(dev);
 	unsigned long clock;
 
 	int ret;
@@ -139,7 +139,7 @@
 
 static int zynq_serial_probe(struct udevice *dev)
 {
-	struct zynq_uart_platdata *plat = dev_get_platdata(dev);
+	struct zynq_uart_platdata *plat = dev_get_plat(dev);
 	struct uart_zynq *regs = plat->regs;
 	u32 val;
 
@@ -155,7 +155,7 @@
 
 static int zynq_serial_getc(struct udevice *dev)
 {
-	struct zynq_uart_platdata *plat = dev_get_platdata(dev);
+	struct zynq_uart_platdata *plat = dev_get_plat(dev);
 	struct uart_zynq *regs = plat->regs;
 
 	if (readl(&regs->channel_sts) & ZYNQ_UART_SR_RXEMPTY)
@@ -166,14 +166,14 @@
 
 static int zynq_serial_putc(struct udevice *dev, const char ch)
 {
-	struct zynq_uart_platdata *plat = dev_get_platdata(dev);
+	struct zynq_uart_platdata *plat = dev_get_plat(dev);
 
 	return _uart_zynq_serial_putc(plat->regs, ch);
 }
 
 static int zynq_serial_pending(struct udevice *dev, bool input)
 {
-	struct zynq_uart_platdata *plat = dev_get_platdata(dev);
+	struct zynq_uart_platdata *plat = dev_get_plat(dev);
 	struct uart_zynq *regs = plat->regs;
 
 	if (input)
@@ -184,7 +184,7 @@
 
 static int zynq_serial_ofdata_to_platdata(struct udevice *dev)
 {
-	struct zynq_uart_platdata *plat = dev_get_platdata(dev);
+	struct zynq_uart_platdata *plat = dev_get_plat(dev);
 
 	plat->regs = (struct uart_zynq *)dev_read_addr(dev);
 	if (IS_ERR(plat->regs))
diff --git a/drivers/soc/soc_ti_k3.c b/drivers/soc/soc_ti_k3.c
index 2ea9162..cd7cf5b 100644
--- a/drivers/soc/soc_ti_k3.c
+++ b/drivers/soc/soc_ti_k3.c
@@ -74,7 +74,7 @@
 
 static int soc_ti_k3_get_family(struct udevice *dev, char *buf, int size)
 {
-	struct soc_ti_k3_platdata *plat = dev_get_platdata(dev);
+	struct soc_ti_k3_platdata *plat = dev_get_plat(dev);
 
 	snprintf(buf, size, "%s", plat->family);
 
@@ -83,7 +83,7 @@
 
 static int soc_ti_k3_get_revision(struct udevice *dev, char *buf, int size)
 {
-	struct soc_ti_k3_platdata *plat = dev_get_platdata(dev);
+	struct soc_ti_k3_platdata *plat = dev_get_plat(dev);
 
 	snprintf(buf, size, "SR%s", plat->revision);
 
@@ -97,7 +97,7 @@
 
 int soc_ti_k3_probe(struct udevice *dev)
 {
-	struct soc_ti_k3_platdata *plat = dev_get_platdata(dev);
+	struct soc_ti_k3_platdata *plat = dev_get_plat(dev);
 	u32 idreg;
 	void *idreg_addr;
 
diff --git a/drivers/spi/altera_spi.c b/drivers/spi/altera_spi.c
index b7da09f..c874151 100644
--- a/drivers/spi/altera_spi.c
+++ b/drivers/spi/altera_spi.c
@@ -161,7 +161,7 @@
 
 static int altera_spi_probe(struct udevice *bus)
 {
-	struct altera_spi_platdata *plat = dev_get_platdata(bus);
+	struct altera_spi_platdata *plat = dev_get_plat(bus);
 	struct altera_spi_priv *priv = dev_get_priv(bus);
 
 	priv->regs = plat->regs;
@@ -171,7 +171,7 @@
 
 static int altera_spi_ofdata_to_platdata(struct udevice *bus)
 {
-	struct altera_spi_platdata *plat = dev_get_platdata(bus);
+	struct altera_spi_platdata *plat = dev_get_plat(bus);
 
 	plat->regs = map_physmem(dev_read_addr(bus),
 				 sizeof(struct altera_spi_regs),
diff --git a/drivers/spi/atmel_spi.c b/drivers/spi/atmel_spi.c
index a192f93..9795972 100644
--- a/drivers/spi/atmel_spi.c
+++ b/drivers/spi/atmel_spi.c
@@ -121,7 +121,7 @@
 static int atmel_spi_claim_bus(struct udevice *dev)
 {
 	struct udevice *bus = dev_get_parent(dev);
-	struct atmel_spi_platdata *bus_plat = dev_get_platdata(bus);
+	struct atmel_spi_platdata *bus_plat = dev_get_plat(bus);
 	struct atmel_spi_priv *priv = dev_get_priv(bus);
 	struct dm_spi_slave_platdata *slave_plat = dev_get_parent_plat(dev);
 	struct at91_spi *reg_base = bus_plat->regs;
@@ -161,7 +161,7 @@
 static int atmel_spi_release_bus(struct udevice *dev)
 {
 	struct udevice *bus = dev_get_parent(dev);
-	struct atmel_spi_platdata *bus_plat = dev_get_platdata(bus);
+	struct atmel_spi_platdata *bus_plat = dev_get_plat(bus);
 
 	writel(ATMEL_SPI_CR_SPIDIS, &bus_plat->regs->cr);
 
@@ -202,7 +202,7 @@
 			  const void *dout, void *din, unsigned long flags)
 {
 	struct udevice *bus = dev_get_parent(dev);
-	struct atmel_spi_platdata *bus_plat = dev_get_platdata(bus);
+	struct atmel_spi_platdata *bus_plat = dev_get_plat(bus);
 	struct at91_spi *reg_base = bus_plat->regs;
 
 	u32 len_tx, len_rx, len;
@@ -344,7 +344,7 @@
 
 static int atmel_spi_probe(struct udevice *bus)
 {
-	struct atmel_spi_platdata *bus_plat = dev_get_platdata(bus);
+	struct atmel_spi_platdata *bus_plat = dev_get_plat(bus);
 	int ret;
 
 	ret = atmel_spi_enable_clk(bus);
diff --git a/drivers/spi/bcmstb_spi.c b/drivers/spi/bcmstb_spi.c
index da87476..83ca649 100644
--- a/drivers/spi/bcmstb_spi.c
+++ b/drivers/spi/bcmstb_spi.c
@@ -96,7 +96,7 @@
 
 static int bcmstb_spi_ofdata_to_platdata(struct udevice *bus)
 {
-	struct bcmstb_spi_platdata *plat = dev_get_platdata(bus);
+	struct bcmstb_spi_platdata *plat = dev_get_plat(bus);
 	const void *fdt = gd->fdt_blob;
 	int node = dev_of_offset(bus);
 	int ret = 0;
@@ -159,7 +159,7 @@
 
 static int bcmstb_spi_probe(struct udevice *bus)
 {
-	struct bcmstb_spi_platdata *plat = dev_get_platdata(bus);
+	struct bcmstb_spi_platdata *plat = dev_get_plat(bus);
 	struct bcmstb_spi_priv *priv = dev_get_priv(bus);
 
 	priv->regs = plat->base[HIF_MSPI];
diff --git a/drivers/spi/cf_spi.c b/drivers/spi/cf_spi.c
index 8c1a62e..ce0584d 100644
--- a/drivers/spi/cf_spi.c
+++ b/drivers/spi/cf_spi.c
@@ -343,7 +343,7 @@
 
 static int coldfire_spi_probe(struct udevice *bus)
 {
-	struct coldfire_spi_platdata *plat = dev_get_platdata(bus);
+	struct coldfire_spi_platdata *plat = dev_get_plat(bus);
 	struct coldfire_spi_priv *cfspi = dev_get_priv(bus);
 	struct dspi *dspi = cfspi->regs;
 	int i;
diff --git a/drivers/spi/designware_spi.c b/drivers/spi/designware_spi.c
index 390fbcf..9906909 100644
--- a/drivers/spi/designware_spi.c
+++ b/drivers/spi/designware_spi.c
@@ -263,7 +263,7 @@
 
 static int dw_spi_probe(struct udevice *bus)
 {
-	struct dw_spi_platdata *plat = dev_get_platdata(bus);
+	struct dw_spi_platdata *plat = dev_get_plat(bus);
 	struct dw_spi_priv *priv = dev_get_priv(bus);
 	int ret;
 
diff --git a/drivers/spi/exynos_spi.c b/drivers/spi/exynos_spi.c
index 2d1602c..0473736 100644
--- a/drivers/spi/exynos_spi.c
+++ b/drivers/spi/exynos_spi.c
@@ -213,7 +213,7 @@
 static void spi_cs_activate(struct udevice *dev)
 {
 	struct udevice *bus = dev->parent;
-	struct exynos_spi_platdata *pdata = dev_get_platdata(bus);
+	struct exynos_spi_platdata *pdata = dev_get_plat(bus);
 	struct exynos_spi_priv *priv = dev_get_priv(bus);
 
 	/* If it's too soon to do another transaction, wait */
@@ -239,7 +239,7 @@
 static void spi_cs_deactivate(struct udevice *dev)
 {
 	struct udevice *bus = dev->parent;
-	struct exynos_spi_platdata *pdata = dev_get_platdata(bus);
+	struct exynos_spi_platdata *pdata = dev_get_plat(bus);
 	struct exynos_spi_priv *priv = dev_get_priv(bus);
 
 	setbits_le32(&priv->regs->cs_reg, SPI_SLAVE_SIG_INACT);
@@ -280,7 +280,7 @@
 
 static int exynos_spi_probe(struct udevice *bus)
 {
-	struct exynos_spi_platdata *plat = dev_get_platdata(bus);
+	struct exynos_spi_platdata *plat = dev_get_plat(bus);
 	struct exynos_spi_priv *priv = dev_get_priv(bus);
 
 	priv->regs = plat->regs;
diff --git a/drivers/spi/fsl_dspi.c b/drivers/spi/fsl_dspi.c
index dfea569..6ec85db 100644
--- a/drivers/spi/fsl_dspi.c
+++ b/drivers/spi/fsl_dspi.c
@@ -481,7 +481,7 @@
 
 static int fsl_dspi_probe(struct udevice *bus)
 {
-	struct fsl_dspi_platdata *plat = dev_get_platdata(bus);
+	struct fsl_dspi_platdata *plat = dev_get_plat(bus);
 	struct fsl_dspi_priv *priv = dev_get_priv(bus);
 	struct dm_spi_bus *dm_spi_bus;
 	uint mcr_cfg_val;
diff --git a/drivers/spi/fsl_espi.c b/drivers/spi/fsl_espi.c
index 05e564b..b8db2ee 100644
--- a/drivers/spi/fsl_espi.c
+++ b/drivers/spi/fsl_espi.c
@@ -520,7 +520,7 @@
 
 static int fsl_espi_probe(struct udevice *bus)
 {
-	struct fsl_espi_platdata *plat = dev_get_platdata(bus);
+	struct fsl_espi_platdata *plat = dev_get_plat(bus);
 	struct fsl_spi_slave *fsl = dev_get_priv(bus);
 
 	fsl->espi = (ccsr_espi_t *)((u32)plat->regs_addr);
diff --git a/drivers/spi/ich.c b/drivers/spi/ich.c
index 0ee691d..b42b536 100644
--- a/drivers/spi/ich.c
+++ b/drivers/spi/ich.c
@@ -264,7 +264,7 @@
 				 const struct spi_mem_op *op)
 {
 	struct udevice *bus = dev_get_parent(slave->dev);
-	struct ich_spi_platdata *plat = dev_get_platdata(bus);
+	struct ich_spi_platdata *plat = dev_get_plat(bus);
 	struct ich_spi_priv *ctlr = dev_get_priv(bus);
 	uint16_t control;
 	int16_t opcode_index;
@@ -602,7 +602,7 @@
 static int ich_spi_exec_op(struct spi_slave *slave, const struct spi_mem_op *op)
 {
 	struct udevice *bus = dev_get_parent(slave->dev);
-	struct ich_spi_platdata *plat = dev_get_platdata(bus);
+	struct ich_spi_platdata *plat = dev_get_plat(bus);
 	int ret;
 
 	bootstage_start(BOOTSTAGE_ID_ACCUM_SPI, "fast_spi");
@@ -706,7 +706,7 @@
 						   offsetp);
 	}
 #else
-	struct ich_spi_platdata *plat = dev_get_platdata(bus);
+	struct ich_spi_platdata *plat = dev_get_plat(bus);
 
 	/*
 	 * We cannot rely on plat->bdf being set up yet since this method can
@@ -758,7 +758,7 @@
 
 static int ich_protect_lockdown(struct udevice *dev)
 {
-	struct ich_spi_platdata *plat = dev_get_platdata(dev);
+	struct ich_spi_platdata *plat = dev_get_plat(dev);
 	struct ich_spi_priv *priv = dev_get_priv(dev);
 	int ret = -ENOSYS;
 
@@ -792,7 +792,7 @@
 			       struct ich_spi_priv *ctlr)
 {
 	if (spl_phase() == PHASE_TPL) {
-		struct ich_spi_platdata *plat = dev_get_platdata(dev);
+		struct ich_spi_platdata *plat = dev_get_plat(dev);
 		int ret;
 
 		ret = fast_spi_early_init(plat->bdf, plat->mmio_base);
@@ -871,7 +871,7 @@
 
 static int ich_spi_probe(struct udevice *dev)
 {
-	struct ich_spi_platdata *plat = dev_get_platdata(dev);
+	struct ich_spi_platdata *plat = dev_get_plat(dev);
 	struct ich_spi_priv *priv = dev_get_priv(dev);
 	int ret;
 
@@ -924,7 +924,7 @@
 static int ich_spi_child_pre_probe(struct udevice *dev)
 {
 	struct udevice *bus = dev_get_parent(dev);
-	struct ich_spi_platdata *plat = dev_get_platdata(bus);
+	struct ich_spi_platdata *plat = dev_get_plat(bus);
 	struct ich_spi_priv *priv = dev_get_priv(bus);
 	struct spi_slave *slave = dev_get_parent_priv(dev);
 
@@ -947,7 +947,7 @@
 
 static int ich_spi_ofdata_to_platdata(struct udevice *dev)
 {
-	struct ich_spi_platdata *plat = dev_get_platdata(dev);
+	struct ich_spi_platdata *plat = dev_get_plat(dev);
 
 #if !CONFIG_IS_ENABLED(OF_PLATDATA)
 	struct ich_spi_priv *priv = dev_get_priv(dev);
diff --git a/drivers/spi/kirkwood_spi.c b/drivers/spi/kirkwood_spi.c
index e8617f4..9e0a1bb 100644
--- a/drivers/spi/kirkwood_spi.c
+++ b/drivers/spi/kirkwood_spi.c
@@ -109,7 +109,7 @@
 
 static int mvebu_spi_set_speed(struct udevice *bus, uint hz)
 {
-	struct mvebu_spi_platdata *plat = dev_get_platdata(bus);
+	struct mvebu_spi_platdata *plat = dev_get_plat(bus);
 	struct kwspi_registers *reg = plat->spireg;
 	u32 data;
 
@@ -127,7 +127,7 @@
 
 static void mvebu_spi_50mhz_ac_timing_erratum(struct udevice *bus, uint mode)
 {
-	struct mvebu_spi_platdata *plat = dev_get_platdata(bus);
+	struct mvebu_spi_platdata *plat = dev_get_plat(bus);
 	struct kwspi_registers *reg = plat->spireg;
 	u32 data;
 
@@ -160,7 +160,7 @@
 
 static int mvebu_spi_set_mode(struct udevice *bus, uint mode)
 {
-	struct mvebu_spi_platdata *plat = dev_get_platdata(bus);
+	struct mvebu_spi_platdata *plat = dev_get_plat(bus);
 	struct kwspi_registers *reg = plat->spireg;
 	u32 data = readl(&reg->cfg);
 
@@ -185,7 +185,7 @@
 			  const void *dout, void *din, unsigned long flags)
 {
 	struct udevice *bus = dev->parent;
-	struct mvebu_spi_platdata *plat = dev_get_platdata(bus);
+	struct mvebu_spi_platdata *plat = dev_get_plat(bus);
 
 	return _spi_xfer(plat->spireg, bitlen, dout, din, flags);
 }
@@ -198,7 +198,7 @@
 static int mvebu_spi_claim_bus(struct udevice *dev)
 {
 	struct udevice *bus = dev->parent;
-	struct mvebu_spi_platdata *plat = dev_get_platdata(bus);
+	struct mvebu_spi_platdata *plat = dev_get_plat(bus);
 
 	/* Configure the chip-select in the CTRL register */
 	clrsetbits_le32(&plat->spireg->ctrl,
@@ -220,7 +220,7 @@
 
 static int mvebu_spi_probe(struct udevice *bus)
 {
-	struct mvebu_spi_platdata *plat = dev_get_platdata(bus);
+	struct mvebu_spi_platdata *plat = dev_get_plat(bus);
 	struct kwspi_registers *reg = plat->spireg;
 
 	writel(KWSPI_SMEMRDY, &reg->ctrl);
@@ -232,7 +232,7 @@
 
 static int mvebu_spi_ofdata_to_platdata(struct udevice *bus)
 {
-	struct mvebu_spi_platdata *plat = dev_get_platdata(bus);
+	struct mvebu_spi_platdata *plat = dev_get_plat(bus);
 	const struct mvebu_spi_dev *drvdata =
 		(struct mvebu_spi_dev *)dev_get_driver_data(bus);
 
diff --git a/drivers/spi/mvebu_a3700_spi.c b/drivers/spi/mvebu_a3700_spi.c
index eddb011..3c4523a 100644
--- a/drivers/spi/mvebu_a3700_spi.c
+++ b/drivers/spi/mvebu_a3700_spi.c
@@ -146,7 +146,7 @@
 			  const void *dout, void *din, unsigned long flags)
 {
 	struct udevice *bus = dev->parent;
-	struct mvebu_spi_platdata *plat = dev_get_platdata(bus);
+	struct mvebu_spi_platdata *plat = dev_get_plat(bus);
 	struct spi_reg *reg = plat->spireg;
 	unsigned int bytelen;
 	int ret;
@@ -186,7 +186,7 @@
 
 static int mvebu_spi_set_speed(struct udevice *bus, uint hz)
 {
-	struct mvebu_spi_platdata *plat = dev_get_platdata(bus);
+	struct mvebu_spi_platdata *plat = dev_get_plat(bus);
 	struct spi_reg *reg = plat->spireg;
 	u32 data, prescale;
 
@@ -207,7 +207,7 @@
 
 static int mvebu_spi_set_mode(struct udevice *bus, uint mode)
 {
-	struct mvebu_spi_platdata *plat = dev_get_platdata(bus);
+	struct mvebu_spi_platdata *plat = dev_get_plat(bus);
 	struct spi_reg *reg = plat->spireg;
 
 	/*
@@ -229,7 +229,7 @@
 
 static int mvebu_spi_probe(struct udevice *bus)
 {
-	struct mvebu_spi_platdata *plat = dev_get_platdata(bus);
+	struct mvebu_spi_platdata *plat = dev_get_plat(bus);
 	struct spi_reg *reg = plat->spireg;
 	u32 data;
 	int ret;
@@ -281,7 +281,7 @@
 
 static int mvebu_spi_ofdata_to_platdata(struct udevice *bus)
 {
-	struct mvebu_spi_platdata *plat = dev_get_platdata(bus);
+	struct mvebu_spi_platdata *plat = dev_get_plat(bus);
 	int ret;
 
 	plat->spireg = dev_read_addr_ptr(bus);
@@ -297,7 +297,7 @@
 
 static int mvebu_spi_remove(struct udevice *bus)
 {
-	struct mvebu_spi_platdata *plat = dev_get_platdata(bus);
+	struct mvebu_spi_platdata *plat = dev_get_plat(bus);
 
 	clk_free(&plat->clk);
 
diff --git a/drivers/spi/mxc_spi.c b/drivers/spi/mxc_spi.c
index fcac5a5..af476c8 100644
--- a/drivers/spi/mxc_spi.c
+++ b/drivers/spi/mxc_spi.c
@@ -512,7 +512,7 @@
 
 static int mxc_spi_probe(struct udevice *bus)
 {
-	struct mxc_spi_slave *mxcs = dev_get_platdata(bus);
+	struct mxc_spi_slave *mxcs = dev_get_plat(bus);
 	int node = dev_of_offset(bus);
 	const void *blob = gd->fdt_blob;
 	int ret;
@@ -550,7 +550,7 @@
 static int mxc_spi_xfer(struct udevice *dev, unsigned int bitlen,
 		const void *dout, void *din, unsigned long flags)
 {
-	struct mxc_spi_slave *mxcs = dev_get_platdata(dev->parent);
+	struct mxc_spi_slave *mxcs = dev_get_plat(dev->parent);
 
 
 	return mxc_spi_xfer_internal(mxcs, bitlen, dout, din, flags);
@@ -558,7 +558,7 @@
 
 static int mxc_spi_claim_bus(struct udevice *dev)
 {
-	struct mxc_spi_slave *mxcs = dev_get_platdata(dev->parent);
+	struct mxc_spi_slave *mxcs = dev_get_plat(dev->parent);
 	struct dm_spi_slave_platdata *slave_plat = dev_get_parent_plat(dev);
 
 	mxcs->dev = dev;
@@ -579,7 +579,7 @@
 
 static int mxc_spi_set_mode(struct udevice *bus, uint mode)
 {
-	struct mxc_spi_slave *mxcs = dev_get_platdata(bus);
+	struct mxc_spi_slave *mxcs = dev_get_plat(bus);
 
 	mxcs->mode = mode;
 	mxcs->ss_pol = (mode & SPI_CS_HIGH) ? 1 : 0;
diff --git a/drivers/spi/mxs_spi.c b/drivers/spi/mxs_spi.c
index 06ab107..3f7aade 100644
--- a/drivers/spi/mxs_spi.c
+++ b/drivers/spi/mxs_spi.c
@@ -311,7 +311,7 @@
 
 static int mxs_spi_probe(struct udevice *bus)
 {
-	struct mxs_spi_platdata *plat = dev_get_platdata(bus);
+	struct mxs_spi_platdata *plat = dev_get_plat(bus);
 	struct mxs_spi_priv *priv = dev_get_priv(bus);
 	int ret;
 
diff --git a/drivers/spi/omap3_spi.c b/drivers/spi/omap3_spi.c
index dc277aa..ea722e4 100644
--- a/drivers/spi/omap3_spi.c
+++ b/drivers/spi/omap3_spi.c
@@ -414,7 +414,7 @@
 static int omap3_spi_probe(struct udevice *dev)
 {
 	struct omap3_spi_priv *priv = dev_get_priv(dev);
-	struct omap3_spi_plat *plat = dev_get_platdata(dev);
+	struct omap3_spi_plat *plat = dev_get_plat(dev);
 
 	priv->regs = plat->regs;
 	priv->pin_dir = plat->pin_dir;
@@ -482,7 +482,7 @@
 {
 	struct omap2_mcspi_platform_config *data =
 		(struct omap2_mcspi_platform_config *)dev_get_driver_data(dev);
-	struct omap3_spi_plat *plat = dev_get_platdata(dev);
+	struct omap3_spi_plat *plat = dev_get_plat(dev);
 
 	plat->regs = (struct mcspi *)(dev_read_addr(dev) + data->regs_offset);
 
diff --git a/drivers/spi/pl022_spi.c b/drivers/spi/pl022_spi.c
index 712385b..3d14203 100644
--- a/drivers/spi/pl022_spi.c
+++ b/drivers/spi/pl022_spi.c
@@ -89,7 +89,7 @@
 
 static int pl022_spi_probe(struct udevice *bus)
 {
-	struct pl022_spi_pdata *plat = dev_get_platdata(bus);
+	struct pl022_spi_pdata *plat = dev_get_plat(bus);
 	struct pl022_spi_slave *ps = dev_get_priv(bus);
 
 	ps->base = ioremap(plat->addr, plat->size);
diff --git a/drivers/spi/renesas_rpc_spi.c b/drivers/spi/renesas_rpc_spi.c
index 275fa43..87d6e48 100644
--- a/drivers/spi/renesas_rpc_spi.c
+++ b/drivers/spi/renesas_rpc_spi.c
@@ -406,7 +406,7 @@
 
 static int rpc_spi_probe(struct udevice *dev)
 {
-	struct rpc_spi_platdata *plat = dev_get_platdata(dev);
+	struct rpc_spi_platdata *plat = dev_get_plat(dev);
 	struct rpc_spi_priv *priv = dev_get_priv(dev);
 
 	priv->regs = plat->regs;
@@ -419,7 +419,7 @@
 
 static int rpc_spi_ofdata_to_platdata(struct udevice *bus)
 {
-	struct rpc_spi_platdata *plat = dev_get_platdata(bus);
+	struct rpc_spi_platdata *plat = dev_get_plat(bus);
 
 	plat->regs = dev_read_addr_index(bus, 0);
 	plat->extr = dev_read_addr_index(bus, 1);
diff --git a/drivers/spi/rk_spi.c b/drivers/spi/rk_spi.c
index 93d125e..63ed0b2 100644
--- a/drivers/spi/rk_spi.c
+++ b/drivers/spi/rk_spi.c
@@ -195,7 +195,7 @@
 static int rockchip_spi_ofdata_to_platdata(struct udevice *bus)
 {
 #if !CONFIG_IS_ENABLED(OF_PLATDATA)
-	struct rockchip_spi_platdata *plat = dev_get_platdata(bus);
+	struct rockchip_spi_platdata *plat = dev_get_plat(bus);
 	struct rockchip_spi_priv *priv = dev_get_priv(bus);
 	int ret;
 
@@ -253,7 +253,7 @@
 
 static int rockchip_spi_probe(struct udevice *bus)
 {
-	struct rockchip_spi_platdata *plat = dev_get_platdata(bus);
+	struct rockchip_spi_platdata *plat = dev_get_plat(bus);
 	struct rockchip_spi_priv *priv = dev_get_priv(bus);
 	int ret;
 
diff --git a/drivers/spi/sh_qspi.c b/drivers/spi/sh_qspi.c
index 5908e28..dd732dc 100644
--- a/drivers/spi/sh_qspi.c
+++ b/drivers/spi/sh_qspi.c
@@ -302,7 +302,7 @@
 			const void *dout, void *din, unsigned long flags)
 {
 	struct udevice *bus = dev->parent;
-	struct sh_qspi_slave *ss = dev_get_platdata(bus);
+	struct sh_qspi_slave *ss = dev_get_plat(bus);
 
 	return sh_qspi_xfer_common(ss, bitlen, dout, din, flags);
 }
@@ -321,7 +321,7 @@
 
 static int sh_qspi_probe(struct udevice *dev)
 {
-	struct sh_qspi_slave *ss = dev_get_platdata(dev);
+	struct sh_qspi_slave *ss = dev_get_plat(dev);
 
 	sh_qspi_init(ss);
 
@@ -330,7 +330,7 @@
 
 static int sh_qspi_ofdata_to_platdata(struct udevice *dev)
 {
-	struct sh_qspi_slave *plat = dev_get_platdata(dev);
+	struct sh_qspi_slave *plat = dev_get_plat(dev);
 
 	plat->regs = (struct sh_qspi_regs *)dev_read_addr(dev);
 
diff --git a/drivers/spi/soft_spi.c b/drivers/spi/soft_spi.c
index c7ed23a..1967134 100644
--- a/drivers/spi/soft_spi.c
+++ b/drivers/spi/soft_spi.c
@@ -41,7 +41,7 @@
 static int soft_spi_scl(struct udevice *dev, int bit)
 {
 	struct udevice *bus = dev_get_parent(dev);
-	struct soft_spi_platdata *plat = dev_get_platdata(bus);
+	struct soft_spi_platdata *plat = dev_get_plat(bus);
 
 	dm_gpio_set_value(&plat->sclk, bit);
 
@@ -51,7 +51,7 @@
 static int soft_spi_sda(struct udevice *dev, int bit)
 {
 	struct udevice *bus = dev_get_parent(dev);
-	struct soft_spi_platdata *plat = dev_get_platdata(bus);
+	struct soft_spi_platdata *plat = dev_get_plat(bus);
 
 	dm_gpio_set_value(&plat->mosi, bit);
 
@@ -62,7 +62,7 @@
 {
 	struct udevice *bus = dev_get_parent(dev);
 	struct soft_spi_priv *priv = dev_get_priv(bus);
-	struct soft_spi_platdata *plat = dev_get_platdata(bus);
+	struct soft_spi_platdata *plat = dev_get_plat(bus);
 	int cidle = !!(priv->mode & SPI_CPOL);
 
 	dm_gpio_set_value(&plat->cs, 0);
@@ -75,7 +75,7 @@
 static int soft_spi_cs_deactivate(struct udevice *dev)
 {
 	struct udevice *bus = dev_get_parent(dev);
-	struct soft_spi_platdata *plat = dev_get_platdata(bus);
+	struct soft_spi_platdata *plat = dev_get_plat(bus);
 
 	dm_gpio_set_value(&plat->cs, 0);
 
@@ -117,7 +117,7 @@
 {
 	struct udevice *bus = dev_get_parent(dev);
 	struct soft_spi_priv *priv = dev_get_priv(bus);
-	struct soft_spi_platdata *plat = dev_get_platdata(bus);
+	struct soft_spi_platdata *plat = dev_get_plat(bus);
 	uchar		tmpdin  = 0;
 	uchar		tmpdout = 0;
 	const u8	*txd = dout;
diff --git a/drivers/spi/spi-sunxi.c b/drivers/spi/spi-sunxi.c
index 5b6c720..8ee8c90 100644
--- a/drivers/spi/spi-sunxi.c
+++ b/drivers/spi/spi-sunxi.c
@@ -407,7 +407,7 @@
 
 static int sun4i_spi_set_speed(struct udevice *dev, uint speed)
 {
-	struct sun4i_spi_platdata *plat = dev_get_platdata(dev);
+	struct sun4i_spi_platdata *plat = dev_get_plat(dev);
 	struct sun4i_spi_priv *priv = dev_get_priv(dev);
 	unsigned int div;
 	u32 reg;
@@ -483,7 +483,7 @@
 
 static int sun4i_spi_probe(struct udevice *bus)
 {
-	struct sun4i_spi_platdata *plat = dev_get_platdata(bus);
+	struct sun4i_spi_platdata *plat = dev_get_plat(bus);
 	struct sun4i_spi_priv *priv = dev_get_priv(bus);
 	int ret;
 
@@ -516,7 +516,7 @@
 
 static int sun4i_spi_ofdata_to_platdata(struct udevice *bus)
 {
-	struct sun4i_spi_platdata *plat = dev_get_platdata(bus);
+	struct sun4i_spi_platdata *plat = dev_get_plat(bus);
 	int node = dev_of_offset(bus);
 
 	plat->base = dev_read_addr(bus);
diff --git a/drivers/spi/tegra114_spi.c b/drivers/spi/tegra114_spi.c
index dee95f4..7021f66 100644
--- a/drivers/spi/tegra114_spi.c
+++ b/drivers/spi/tegra114_spi.c
@@ -124,7 +124,7 @@
 
 static int tegra114_spi_probe(struct udevice *bus)
 {
-	struct tegra_spi_platdata *plat = dev_get_platdata(bus);
+	struct tegra_spi_platdata *plat = dev_get_plat(bus);
 	struct tegra114_spi_priv *priv = dev_get_priv(bus);
 	struct spi_regs *regs;
 	ulong rate;
@@ -181,7 +181,7 @@
 static void spi_cs_activate(struct udevice *dev)
 {
 	struct udevice *bus = dev->parent;
-	struct tegra_spi_platdata *pdata = dev_get_platdata(bus);
+	struct tegra_spi_platdata *pdata = dev_get_plat(bus);
 	struct tegra114_spi_priv *priv = dev_get_priv(bus);
 
 	/* If it's too soon to do another transaction, wait */
@@ -205,7 +205,7 @@
 static void spi_cs_deactivate(struct udevice *dev)
 {
 	struct udevice *bus = dev->parent;
-	struct tegra_spi_platdata *pdata = dev_get_platdata(bus);
+	struct tegra_spi_platdata *pdata = dev_get_plat(bus);
 	struct tegra114_spi_priv *priv = dev_get_priv(bus);
 
 	setbits_le32(&priv->regs->command1, SPI_CMD1_CS_SW_VAL);
diff --git a/drivers/spi/tegra20_sflash.c b/drivers/spi/tegra20_sflash.c
index f2d2701..53719c7 100644
--- a/drivers/spi/tegra20_sflash.c
+++ b/drivers/spi/tegra20_sflash.c
@@ -116,7 +116,7 @@
 
 static int tegra20_sflash_probe(struct udevice *bus)
 {
-	struct tegra_spi_platdata *plat = dev_get_platdata(bus);
+	struct tegra_spi_platdata *plat = dev_get_plat(bus);
 	struct tegra20_sflash_priv *priv = dev_get_priv(bus);
 
 	priv->regs = (struct spi_regs *)plat->base;
@@ -173,7 +173,7 @@
 static void spi_cs_activate(struct udevice *dev)
 {
 	struct udevice *bus = dev->parent;
-	struct tegra_spi_platdata *pdata = dev_get_platdata(bus);
+	struct tegra_spi_platdata *pdata = dev_get_plat(bus);
 	struct tegra20_sflash_priv *priv = dev_get_priv(bus);
 
 	/* If it's too soon to do another transaction, wait */
@@ -192,7 +192,7 @@
 static void spi_cs_deactivate(struct udevice *dev)
 {
 	struct udevice *bus = dev->parent;
-	struct tegra_spi_platdata *pdata = dev_get_platdata(bus);
+	struct tegra_spi_platdata *pdata = dev_get_plat(bus);
 	struct tegra20_sflash_priv *priv = dev_get_priv(bus);
 
 	/* CS is negated on Tegra, so drive a 0 to get a 1 */
diff --git a/drivers/spi/tegra20_slink.c b/drivers/spi/tegra20_slink.c
index 58c4e3f..55261a8 100644
--- a/drivers/spi/tegra20_slink.c
+++ b/drivers/spi/tegra20_slink.c
@@ -122,7 +122,7 @@
 
 static int tegra30_spi_probe(struct udevice *bus)
 {
-	struct tegra_spi_platdata *plat = dev_get_platdata(bus);
+	struct tegra_spi_platdata *plat = dev_get_plat(bus);
 	struct tegra30_spi_priv *priv = dev_get_priv(bus);
 
 	priv->regs = (struct spi_regs *)plat->base;
@@ -167,7 +167,7 @@
 static void spi_cs_activate(struct udevice *dev)
 {
 	struct udevice *bus = dev->parent;
-	struct tegra_spi_platdata *pdata = dev_get_platdata(bus);
+	struct tegra_spi_platdata *pdata = dev_get_plat(bus);
 	struct tegra30_spi_priv *priv = dev_get_priv(bus);
 
 	/* If it's too soon to do another transaction, wait */
@@ -186,7 +186,7 @@
 static void spi_cs_deactivate(struct udevice *dev)
 {
 	struct udevice *bus = dev->parent;
-	struct tegra_spi_platdata *pdata = dev_get_platdata(bus);
+	struct tegra_spi_platdata *pdata = dev_get_plat(bus);
 	struct tegra30_spi_priv *priv = dev_get_priv(bus);
 
 	/* CS is negated on Tegra, so drive a 0 to get a 1 */
diff --git a/drivers/spi/tegra210_qspi.c b/drivers/spi/tegra210_qspi.c
index 2e812e7..a596052 100644
--- a/drivers/spi/tegra210_qspi.c
+++ b/drivers/spi/tegra210_qspi.c
@@ -125,7 +125,7 @@
 
 static int tegra210_qspi_probe(struct udevice *bus)
 {
-	struct tegra_spi_platdata *plat = dev_get_platdata(bus);
+	struct tegra_spi_platdata *plat = dev_get_plat(bus);
 	struct tegra210_qspi_priv *priv = dev_get_priv(bus);
 
 	priv->regs = (struct qspi_regs *)plat->base;
@@ -174,7 +174,7 @@
 static void spi_cs_activate(struct udevice *dev)
 {
 	struct udevice *bus = dev->parent;
-	struct tegra_spi_platdata *pdata = dev_get_platdata(bus);
+	struct tegra_spi_platdata *pdata = dev_get_plat(bus);
 	struct tegra210_qspi_priv *priv = dev_get_priv(bus);
 
 	/* If it's too soon to do another transaction, wait */
@@ -198,7 +198,7 @@
 static void spi_cs_deactivate(struct udevice *dev)
 {
 	struct udevice *bus = dev->parent;
-	struct tegra_spi_platdata *pdata = dev_get_platdata(bus);
+	struct tegra_spi_platdata *pdata = dev_get_plat(bus);
 	struct tegra210_qspi_priv *priv = dev_get_priv(bus);
 
 	setbits_le32(&priv->regs->command1, QSPI_CMD1_CS_SW_VAL);
diff --git a/drivers/spi/uniphier_spi.c b/drivers/spi/uniphier_spi.c
index 02bcc0a..6d9fd3f 100644
--- a/drivers/spi/uniphier_spi.c
+++ b/drivers/spi/uniphier_spi.c
@@ -383,7 +383,7 @@
 
 static int uniphier_spi_probe(struct udevice *bus)
 {
-	struct uniphier_spi_platdata *plat = dev_get_platdata(bus);
+	struct uniphier_spi_platdata *plat = dev_get_plat(bus);
 	struct uniphier_spi_priv *priv = dev_get_priv(bus);
 
 	priv->base = plat->base;
diff --git a/drivers/spi/zynq_qspi.c b/drivers/spi/zynq_qspi.c
index 7ff1672..f0dbb1c 100644
--- a/drivers/spi/zynq_qspi.c
+++ b/drivers/spi/zynq_qspi.c
@@ -171,7 +171,7 @@
 
 static int zynq_qspi_probe(struct udevice *bus)
 {
-	struct zynq_qspi_platdata *plat = dev_get_platdata(bus);
+	struct zynq_qspi_platdata *plat = dev_get_plat(bus);
 	struct zynq_qspi_priv *priv = dev_get_priv(bus);
 	struct clk clk;
 	unsigned long clock;
diff --git a/drivers/spi/zynq_spi.c b/drivers/spi/zynq_spi.c
index f18b9e1..b400959 100644
--- a/drivers/spi/zynq_spi.c
+++ b/drivers/spi/zynq_spi.c
@@ -121,7 +121,7 @@
 
 static int zynq_spi_probe(struct udevice *bus)
 {
-	struct zynq_spi_platdata *plat = dev_get_platdata(bus);
+	struct zynq_spi_platdata *plat = dev_get_plat(bus);
 	struct zynq_spi_priv *priv = dev_get_priv(bus);
 	struct clk clk;
 	unsigned long clock;
diff --git a/drivers/spi/zynqmp_gqspi.c b/drivers/spi/zynqmp_gqspi.c
index e4ab5d6..07e84da 100644
--- a/drivers/spi/zynqmp_gqspi.c
+++ b/drivers/spi/zynqmp_gqspi.c
@@ -333,7 +333,7 @@
 
 static int zynqmp_qspi_probe(struct udevice *bus)
 {
-	struct zynqmp_qspi_platdata *plat = dev_get_platdata(bus);
+	struct zynqmp_qspi_platdata *plat = dev_get_plat(bus);
 	struct zynqmp_qspi_priv *priv = dev_get_priv(bus);
 	struct clk clk;
 	unsigned long clock;
diff --git a/drivers/sysreset/sysreset_x86.c b/drivers/sysreset/sysreset_x86.c
index 768a0d1..e51ce1b 100644
--- a/drivers/sysreset/sysreset_x86.c
+++ b/drivers/sysreset/sysreset_x86.c
@@ -30,7 +30,7 @@
  */
 int pch_sysreset_power_off(struct udevice *dev)
 {
-	struct x86_sysreset_platdata *plat = dev_get_platdata(dev);
+	struct x86_sysreset_platdata *plat = dev_get_plat(dev);
 	struct pch_pmbase_info pm;
 	u32 reg32;
 	int ret;
@@ -130,7 +130,7 @@
 
 static int x86_sysreset_probe(struct udevice *dev)
 {
-	struct x86_sysreset_platdata *plat = dev_get_platdata(dev);
+	struct x86_sysreset_platdata *plat = dev_get_plat(dev);
 
 	/* Locate the PCH if there is one. It isn't essential */
 	uclass_first_device(UCLASS_PCH, &plat->pch);
diff --git a/drivers/tee/optee/core.c b/drivers/tee/optee/core.c
index 378df93..61af5ac 100644
--- a/drivers/tee/optee/core.c
+++ b/drivers/tee/optee/core.c
@@ -297,7 +297,7 @@
 
 static u32 do_call_with_arg(struct udevice *dev, struct optee_msg_arg *arg)
 {
-	struct optee_pdata *pdata = dev_get_platdata(dev);
+	struct optee_pdata *pdata = dev_get_plat(dev);
 	struct rpc_param param = { .a0 = OPTEE_SMC_CALL_WITH_ARG };
 	void *page_list = NULL;
 
@@ -609,7 +609,7 @@
 
 static int optee_ofdata_to_platdata(struct udevice *dev)
 {
-	struct optee_pdata *pdata = dev_get_platdata(dev);
+	struct optee_pdata *pdata = dev_get_plat(dev);
 
 	pdata->invoke_fn = get_invoke_func(dev);
 	if (IS_ERR(pdata->invoke_fn))
@@ -620,7 +620,7 @@
 
 static int optee_probe(struct udevice *dev)
 {
-	struct optee_pdata *pdata = dev_get_platdata(dev);
+	struct optee_pdata *pdata = dev_get_plat(dev);
 	u32 sec_caps;
 
 	if (!is_optee_api(pdata->invoke_fn)) {
diff --git a/drivers/thermal/imx_scu_thermal.c b/drivers/thermal/imx_scu_thermal.c
index 0c2a8ea..0005800 100644
--- a/drivers/thermal/imx_scu_thermal.c
+++ b/drivers/thermal/imx_scu_thermal.c
@@ -33,7 +33,7 @@
 
 	sc_rsrc_t *sensor_rsrc = (sc_rsrc_t *)dev_get_driver_data(dev);
 
-	struct imx_sc_thermal_plat *pdata = dev_get_platdata(dev);
+	struct imx_sc_thermal_plat *pdata = dev_get_plat(dev);
 
 	if (!temp)
 		return -EINVAL;
@@ -52,7 +52,7 @@
 
 int imx_sc_thermal_get_temp(struct udevice *dev, int *temp)
 {
-	struct imx_sc_thermal_plat *pdata = dev_get_platdata(dev);
+	struct imx_sc_thermal_plat *pdata = dev_get_plat(dev);
 	int cpu_temp = 0;
 	int ret;
 
@@ -89,7 +89,7 @@
 
 static int imx_sc_thermal_bind(struct udevice *dev)
 {
-	struct imx_sc_thermal_plat *pdata = dev_get_platdata(dev);
+	struct imx_sc_thermal_plat *pdata = dev_get_plat(dev);
 	int reg, ret;
 	int offset;
 	const char *name;
@@ -128,7 +128,7 @@
 
 static int imx_sc_thermal_ofdata_to_platdata(struct udevice *dev)
 {
-	struct imx_sc_thermal_plat *pdata = dev_get_platdata(dev);
+	struct imx_sc_thermal_plat *pdata = dev_get_plat(dev);
 	struct fdtdec_phandle_args args;
 	const char *type;
 	int ret;
diff --git a/drivers/thermal/imx_thermal.c b/drivers/thermal/imx_thermal.c
index 8898268..2f6343e 100644
--- a/drivers/thermal/imx_thermal.c
+++ b/drivers/thermal/imx_thermal.c
@@ -52,7 +52,7 @@
 {
 	int temperature;
 	unsigned int reg, n_meas;
-	const struct imx_thermal_plat *pdata = dev_get_platdata(dev);
+	const struct imx_thermal_plat *pdata = dev_get_plat(dev);
 	struct anatop_regs *anatop = (struct anatop_regs *)pdata->regs;
 	struct thermal_data *priv = dev_get_priv(dev);
 	u32 fuse = priv->fuse;
@@ -237,7 +237,7 @@
 {
 	unsigned int fuse = ~0;
 
-	const struct imx_thermal_plat *pdata = dev_get_platdata(dev);
+	const struct imx_thermal_plat *pdata = dev_get_plat(dev);
 	struct thermal_data *priv = dev_get_priv(dev);
 
 	/* Read Temperature calibration data fuse */
diff --git a/drivers/thermal/imx_tmu.c b/drivers/thermal/imx_tmu.c
index 77e3b3c..1bd0340 100644
--- a/drivers/thermal/imx_tmu.c
+++ b/drivers/thermal/imx_tmu.c
@@ -126,7 +126,7 @@
 
 static int read_temperature(struct udevice *dev, int *temp)
 {
-	struct imx_tmu_plat *pdata = dev_get_platdata(dev);
+	struct imx_tmu_plat *pdata = dev_get_plat(dev);
 	ulong drv_data = dev_get_driver_data(dev);
 	u32 val;
 	u32 retry = 10;
@@ -175,7 +175,7 @@
 
 int imx_tmu_get_temp(struct udevice *dev, int *temp)
 {
-	struct imx_tmu_plat *pdata = dev_get_platdata(dev);
+	struct imx_tmu_plat *pdata = dev_get_plat(dev);
 	int cpu_tmp = 0;
 	int ret;
 
@@ -206,7 +206,7 @@
 	int i, val, len, ret;
 	u32 range[4];
 	const fdt32_t *calibration;
-	struct imx_tmu_plat *pdata = dev_get_platdata(dev);
+	struct imx_tmu_plat *pdata = dev_get_plat(dev);
 	ulong drv_data = dev_get_driver_data(dev);
 
 	debug("%s\n", __func__);
@@ -248,7 +248,7 @@
 
 static void imx_tmu_init(struct udevice *dev)
 {
-	struct imx_tmu_plat *pdata = dev_get_platdata(dev);
+	struct imx_tmu_plat *pdata = dev_get_plat(dev);
 	ulong drv_data = dev_get_driver_data(dev);
 
 	debug("%s\n", __func__);
@@ -282,7 +282,7 @@
 
 static int imx_tmu_enable_msite(struct udevice *dev)
 {
-	struct imx_tmu_plat *pdata = dev_get_platdata(dev);
+	struct imx_tmu_plat *pdata = dev_get_plat(dev);
 	ulong drv_data = dev_get_driver_data(dev);
 	u32 reg;
 
@@ -338,7 +338,7 @@
 
 static int imx_tmu_bind(struct udevice *dev)
 {
-	struct imx_tmu_plat *pdata = dev_get_platdata(dev);
+	struct imx_tmu_plat *pdata = dev_get_plat(dev);
 	int ret;
 	ofnode node, offset;
 	const char *name;
@@ -370,7 +370,7 @@
 
 static int imx_tmu_parse_fdt(struct udevice *dev)
 {
-	struct imx_tmu_plat *pdata = dev_get_platdata(dev), *p_parent_data;
+	struct imx_tmu_plat *pdata = dev_get_plat(dev), *p_parent_data;
 	struct ofnode_phandle_args args;
 	ofnode trips_np;
 	int ret;
@@ -385,7 +385,7 @@
 		return 0;
 	}
 
-	p_parent_data = dev_get_platdata(dev->parent);
+	p_parent_data = dev_get_plat(dev->parent);
 	if (p_parent_data->zone_node)
 		pdata->regs = p_parent_data->regs;
 
@@ -430,7 +430,7 @@
 
 static int imx_tmu_probe(struct udevice *dev)
 {
-	struct imx_tmu_plat *pdata = dev_get_platdata(dev);
+	struct imx_tmu_plat *pdata = dev_get_plat(dev);
 	int ret;
 
 	ret = imx_tmu_parse_fdt(dev);
diff --git a/drivers/timer/ag101p_timer.c b/drivers/timer/ag101p_timer.c
index a73a8c0..d500ba1 100644
--- a/drivers/timer/ag101p_timer.c
+++ b/drivers/timer/ag101p_timer.c
@@ -90,7 +90,7 @@
 
 static int atftme_timer_ofdata_to_platdata(struct udevice *dev)
 {
-	struct atftmr_timer_platdata *plat = dev_get_platdata(dev);
+	struct atftmr_timer_platdata *plat = dev_get_plat(dev);
 	plat->regs = map_physmem(dev_read_addr(dev),
 				 sizeof(struct atftmr_timer_regs),
 				 MAP_NOCACHE);
diff --git a/drivers/timer/altera_timer.c b/drivers/timer/altera_timer.c
index 4579717..1daa0ea 100644
--- a/drivers/timer/altera_timer.c
+++ b/drivers/timer/altera_timer.c
@@ -65,7 +65,7 @@
 
 static int altera_timer_ofdata_to_platdata(struct udevice *dev)
 {
-	struct altera_timer_platdata *plat = dev_get_platdata(dev);
+	struct altera_timer_platdata *plat = dev_get_plat(dev);
 
 	plat->regs = map_physmem(dev_read_addr(dev),
 				 sizeof(struct altera_timer_regs),
diff --git a/drivers/timer/atcpit100_timer.c b/drivers/timer/atcpit100_timer.c
index 61a04fc..47185a8 100644
--- a/drivers/timer/atcpit100_timer.c
+++ b/drivers/timer/atcpit100_timer.c
@@ -70,7 +70,7 @@
 
 static u64 atcpit_timer_get_count(struct udevice *dev)
 {
-	struct atcpit_timer_platdata *plat = dev_get_platdata(dev);
+	struct atcpit_timer_platdata *plat = dev_get_plat(dev);
 	u32 val;
 	val = ~(REG32_TMR(CH_CNT(1))+0xffffffff);
 	return timer_conv_64(val);
@@ -78,7 +78,7 @@
 
 static int atcpit_timer_probe(struct udevice *dev)
 {
-	struct atcpit_timer_platdata *plat = dev_get_platdata(dev);
+	struct atcpit_timer_platdata *plat = dev_get_plat(dev);
 	REG32_TMR(CH_REL(1)) = 0xffffffff;
 	REG32_TMR(CH_CTL(1)) = APB_CLK|TMR_32;
 	REG32_TMR(CH_EN) |= CH_TMR_EN(1 , 0);
@@ -87,7 +87,7 @@
 
 static int atcpit_timer_ofdata_to_platdata(struct udevice *dev)
 {
-	struct atcpit_timer_platdata *plat = dev_get_platdata(dev);
+	struct atcpit_timer_platdata *plat = dev_get_plat(dev);
 	plat->regs = map_physmem(dev_read_addr(dev), 0x100 , MAP_NOCACHE);
 	return 0;
 }
diff --git a/drivers/timer/atmel_pit_timer.c b/drivers/timer/atmel_pit_timer.c
index 226c680..d88a05a 100644
--- a/drivers/timer/atmel_pit_timer.c
+++ b/drivers/timer/atmel_pit_timer.c
@@ -27,7 +27,7 @@
 
 static u64 atmel_pit_get_count(struct udevice *dev)
 {
-	struct atmel_pit_platdata *plat = dev_get_platdata(dev);
+	struct atmel_pit_platdata *plat = dev_get_plat(dev);
 	struct atmel_pit_regs *const regs = plat->regs;
 	u32 val = readl(&regs->value_image);
 
@@ -36,7 +36,7 @@
 
 static int atmel_pit_probe(struct udevice *dev)
 {
-	struct atmel_pit_platdata *plat = dev_get_platdata(dev);
+	struct atmel_pit_platdata *plat = dev_get_plat(dev);
 	struct atmel_pit_regs *const regs = plat->regs;
 	struct timer_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 	struct clk clk;
@@ -60,7 +60,7 @@
 
 static int atmel_pit_ofdata_to_platdata(struct udevice *dev)
 {
-	struct atmel_pit_platdata *plat = dev_get_platdata(dev);
+	struct atmel_pit_platdata *plat = dev_get_plat(dev);
 
 	plat->regs = dev_read_addr_ptr(dev);
 
diff --git a/drivers/timer/rockchip_timer.c b/drivers/timer/rockchip_timer.c
index 51ce52f..8b727b6 100644
--- a/drivers/timer/rockchip_timer.c
+++ b/drivers/timer/rockchip_timer.c
@@ -139,7 +139,7 @@
 #if CONFIG_IS_ENABLED(OF_PLATDATA)
 	struct timer_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 	struct rockchip_timer_priv *priv = dev_get_priv(dev);
-	struct rockchip_timer_plat *plat = dev_get_platdata(dev);
+	struct rockchip_timer_plat *plat = dev_get_plat(dev);
 
 	priv->timer = map_sysmem(plat->dtd.reg[0], plat->dtd.reg[1]);
 	uc_priv->clock_rate = plat->dtd.clock_frequency;
diff --git a/drivers/tpm/tpm_tis_st33zp24_spi.c b/drivers/tpm/tpm_tis_st33zp24_spi.c
index b9dbe82..f0de8a6 100644
--- a/drivers/tpm/tpm_tis_st33zp24_spi.c
+++ b/drivers/tpm/tpm_tis_st33zp24_spi.c
@@ -116,7 +116,7 @@
 {
 	int total_length = 0, ret;
 	struct spi_slave *slave = dev_get_parent_priv(dev);
-	struct st33zp24_spi_phy *phy = dev_get_platdata(dev);
+	struct st33zp24_spi_phy *phy = dev_get_plat(dev);
 
 	u8 *tx_buf = (u8 *)phy->tx_buf;
 	u8 *rx_buf = phy->rx_buf;
@@ -167,7 +167,7 @@
 {
 	int total_length = 0, ret;
 	struct spi_slave *slave = dev_get_parent_priv(dev);
-	struct st33zp24_spi_phy *phy = dev_get_platdata(dev);
+	struct st33zp24_spi_phy *phy = dev_get_plat(dev);
 
 	u8 *tx_buf = (u8 *)phy->tx_buf;
 	u8 *rx_buf = phy->rx_buf;
@@ -223,7 +223,7 @@
 {
 	int latency = 1, status = 0;
 	u8 data = 0;
-	struct st33zp24_spi_phy *phy = dev_get_platdata(dev);
+	struct st33zp24_spi_phy *phy = dev_get_plat(dev);
 
 	while (!status && latency < MAX_SPI_LATENCY) {
 		phy->latency = latency;
@@ -562,7 +562,7 @@
 static int st33zp24_spi_init(struct udevice *dev)
 {
 	struct tpm_chip *chip = dev_get_priv(dev);
-	struct st33zp24_spi_phy *phy = dev_get_platdata(dev);
+	struct st33zp24_spi_phy *phy = dev_get_plat(dev);
 
 	chip->is_open = 1;
 
diff --git a/drivers/usb/cdns3/cdns3-ti.c b/drivers/usb/cdns3/cdns3-ti.c
index 75f40e1..7b205c5 100644
--- a/drivers/usb/cdns3/cdns3-ti.c
+++ b/drivers/usb/cdns3/cdns3-ti.c
@@ -87,7 +87,7 @@
 
 static int cdns_ti_probe(struct udevice *dev)
 {
-	struct cdns_ti *data = dev_get_platdata(dev);
+	struct cdns_ti *data = dev_get_plat(dev);
 	struct clk usb2_refclk;
 	int modestrap_mode;
 	unsigned long rate;
@@ -167,7 +167,7 @@
 
 static int cdns_ti_remove(struct udevice *dev)
 {
-	struct cdns_ti *data = dev_get_platdata(dev);
+	struct cdns_ti *data = dev_get_plat(dev);
 	u32 reg;
 
 	/* put device back to RESET*/
diff --git a/drivers/usb/dwc3/dwc3-generic.c b/drivers/usb/dwc3/dwc3-generic.c
index 1755289..0bfdaa0 100644
--- a/drivers/usb/dwc3/dwc3-generic.c
+++ b/drivers/usb/dwc3/dwc3-generic.c
@@ -53,9 +53,9 @@
 			      struct dwc3_generic_priv *priv)
 {
 	int rc;
-	struct dwc3_generic_plat *plat = dev_get_platdata(dev);
+	struct dwc3_generic_plat *plat = dev_get_plat(dev);
 	struct dwc3 *dwc3 = &priv->dwc3;
-	struct dwc3_glue_data *glue = dev_get_platdata(dev->parent);
+	struct dwc3_glue_data *glue = dev_get_plat(dev->parent);
 
 	dwc3->dev = dev;
 	dwc3->maximum_speed = plat->maximum_speed;
@@ -107,7 +107,7 @@
 
 static int dwc3_generic_ofdata_to_platdata(struct udevice *dev)
 {
-	struct dwc3_generic_plat *plat = dev_get_platdata(dev);
+	struct dwc3_generic_plat *plat = dev_get_plat(dev);
 	ofnode node = dev->node;
 
 	plat->base = dev_read_addr(dev);
@@ -238,7 +238,7 @@
 	u32 utmi_mode;
 	u32 utmi_status_offset = USBOTGSS_UTMI_OTG_STATUS;
 
-	struct dwc3_glue_data *glue = dev_get_platdata(dev);
+	struct dwc3_glue_data *glue = dev_get_plat(dev);
 	void *base = map_physmem(glue->regs, 0x10000, MAP_NOCACHE);
 
 	if (device_is_compatible(dev, "ti,am437x-dwc3"))
@@ -390,7 +390,7 @@
 static int dwc3_glue_probe(struct udevice *dev)
 {
 	struct dwc3_glue_ops *ops = (struct dwc3_glue_ops *)dev_get_driver_data(dev);
-	struct dwc3_glue_data *glue = dev_get_platdata(dev);
+	struct dwc3_glue_data *glue = dev_get_plat(dev);
 	struct udevice *child = NULL;
 	int index = 0;
 	int ret;
@@ -430,7 +430,7 @@
 
 static int dwc3_glue_remove(struct udevice *dev)
 {
-	struct dwc3_glue_data *glue = dev_get_platdata(dev);
+	struct dwc3_glue_data *glue = dev_get_plat(dev);
 
 	reset_release_bulk(&glue->resets);
 
diff --git a/drivers/usb/dwc3/dwc3-meson-g12a.c b/drivers/usb/dwc3/dwc3-meson-g12a.c
index 5be8bc8..acc7866 100644
--- a/drivers/usb/dwc3/dwc3-meson-g12a.c
+++ b/drivers/usb/dwc3/dwc3-meson-g12a.c
@@ -258,7 +258,7 @@
 
 int dwc3_meson_g12a_force_mode(struct udevice *dev, enum usb_dr_mode mode)
 {
-	struct dwc3_meson_g12a *priv = dev_get_platdata(dev);
+	struct dwc3_meson_g12a *priv = dev_get_plat(dev);
 
 	if (!priv)
 		return -EINVAL;
@@ -359,7 +359,7 @@
 
 static int dwc3_meson_g12a_probe(struct udevice *dev)
 {
-	struct dwc3_meson_g12a *priv = dev_get_platdata(dev);
+	struct dwc3_meson_g12a *priv = dev_get_plat(dev);
 	int ret, i;
 
 	priv->dev = dev;
@@ -434,7 +434,7 @@
 
 static int dwc3_meson_g12a_remove(struct udevice *dev)
 {
-	struct dwc3_meson_g12a *priv = dev_get_platdata(dev);
+	struct dwc3_meson_g12a *priv = dev_get_plat(dev);
 	int i;
 
 	reset_release_all(&priv->reset, 1);
diff --git a/drivers/usb/dwc3/dwc3-meson-gxl.c b/drivers/usb/dwc3/dwc3-meson-gxl.c
index 1c7bfe8..b63cc23 100644
--- a/drivers/usb/dwc3/dwc3-meson-gxl.c
+++ b/drivers/usb/dwc3/dwc3-meson-gxl.c
@@ -196,7 +196,7 @@
 
 int dwc3_meson_gxl_force_mode(struct udevice *dev, enum usb_dr_mode mode)
 {
-	struct dwc3_meson_gxl *priv = dev_get_platdata(dev);
+	struct dwc3_meson_gxl *priv = dev_get_plat(dev);
 
 	if (!priv)
 		return -EINVAL;
@@ -295,7 +295,7 @@
 
 static int dwc3_meson_gxl_probe(struct udevice *dev)
 {
-	struct dwc3_meson_gxl *priv = dev_get_platdata(dev);
+	struct dwc3_meson_gxl *priv = dev_get_plat(dev);
 	int ret, i;
 
 	priv->dev = dev;
@@ -384,7 +384,7 @@
 
 static int dwc3_meson_gxl_remove(struct udevice *dev)
 {
-	struct dwc3_meson_gxl *priv = dev_get_platdata(dev);
+	struct dwc3_meson_gxl *priv = dev_get_plat(dev);
 	int i;
 
 	reset_release_all(&priv->reset, 1);
diff --git a/drivers/usb/emul/sandbox_flash.c b/drivers/usb/emul/sandbox_flash.c
index 62c8166..67c2320 100644
--- a/drivers/usb/emul/sandbox_flash.c
+++ b/drivers/usb/emul/sandbox_flash.c
@@ -297,7 +297,7 @@
 static int sandbox_flash_bulk(struct udevice *dev, struct usb_device *udev,
 			      unsigned long pipe, void *buff, int len)
 {
-	struct sandbox_flash_plat *plat = dev_get_platdata(dev);
+	struct sandbox_flash_plat *plat = dev_get_plat(dev);
 	struct sandbox_flash_priv *priv = dev_get_priv(dev);
 	int ep = usb_pipeendpoint(pipe);
 	struct umass_bbb_cbw *cbw = buff;
@@ -368,7 +368,7 @@
 
 static int sandbox_flash_ofdata_to_platdata(struct udevice *dev)
 {
-	struct sandbox_flash_plat *plat = dev_get_platdata(dev);
+	struct sandbox_flash_plat *plat = dev_get_plat(dev);
 
 	plat->pathname = dev_read_string(dev, "sandbox,filepath");
 
@@ -377,7 +377,7 @@
 
 static int sandbox_flash_bind(struct udevice *dev)
 {
-	struct sandbox_flash_plat *plat = dev_get_platdata(dev);
+	struct sandbox_flash_plat *plat = dev_get_plat(dev);
 	struct usb_string *fs;
 
 	fs = plat->flash_strings;
@@ -393,7 +393,7 @@
 
 static int sandbox_flash_probe(struct udevice *dev)
 {
-	struct sandbox_flash_plat *plat = dev_get_platdata(dev);
+	struct sandbox_flash_plat *plat = dev_get_plat(dev);
 	struct sandbox_flash_priv *priv = dev_get_priv(dev);
 
 	priv->fd = os_open(plat->pathname, OS_O_RDONLY);
diff --git a/drivers/usb/emul/sandbox_keyb.c b/drivers/usb/emul/sandbox_keyb.c
index 16c5945..5ec1e98 100644
--- a/drivers/usb/emul/sandbox_keyb.c
+++ b/drivers/usb/emul/sandbox_keyb.c
@@ -202,7 +202,7 @@
 
 static int sandbox_keyb_bind(struct udevice *dev)
 {
-	struct sandbox_keyb_plat *plat = dev_get_platdata(dev);
+	struct sandbox_keyb_plat *plat = dev_get_plat(dev);
 	struct usb_string *fs;
 
 	fs = plat->keyb_strings;
diff --git a/drivers/usb/eth/asix.c b/drivers/usb/eth/asix.c
index be69952..674f78e 100644
--- a/drivers/usb/eth/asix.c
+++ b/drivers/usb/eth/asix.c
@@ -743,7 +743,7 @@
 #ifdef CONFIG_DM_ETH
 static int asix_eth_start(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct asix_private *priv = dev_get_priv(dev);
 
 	return asix_init_common(&priv->ueth, pdata->enetaddr);
@@ -825,7 +825,7 @@
 
 int asix_write_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct asix_private *priv = dev_get_priv(dev);
 
 	if (priv->flags & FLAG_TYPE_AX88172)
@@ -836,7 +836,7 @@
 
 static int asix_eth_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct asix_private *priv = dev_get_priv(dev);
 	struct ueth_data *ss = &priv->ueth;
 	int ret;
diff --git a/drivers/usb/eth/asix88179.c b/drivers/usb/eth/asix88179.c
index 8abcf13..4742a95 100644
--- a/drivers/usb/eth/asix88179.c
+++ b/drivers/usb/eth/asix88179.c
@@ -857,7 +857,7 @@
 
 int ax88179_write_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct asix_private *priv = dev_get_priv(dev);
 	struct ueth_data *ueth = &priv->ueth;
 
@@ -866,7 +866,7 @@
 
 static int ax88179_eth_probe(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct asix_private *priv = dev_get_priv(dev);
 	struct usb_device *usb_dev;
 	int ret;
diff --git a/drivers/usb/eth/lan75xx.c b/drivers/usb/eth/lan75xx.c
index d5e4c6a..4effbc5 100644
--- a/drivers/usb/eth/lan75xx.c
+++ b/drivers/usb/eth/lan75xx.c
@@ -133,7 +133,7 @@
 int lan75xx_write_hwaddr(struct udevice *dev)
 {
 	struct usb_device *udev = dev_get_parent_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	unsigned char *enetaddr = pdata->enetaddr;
 	u32 addr_lo = get_unaligned_le32(&enetaddr[0]);
 	u32 addr_hi = (u32)get_unaligned_le16(&enetaddr[4]);
@@ -242,7 +242,7 @@
 int lan75xx_read_rom_hwaddr(struct udevice *dev)
 {
 	struct usb_device *udev = dev_get_parent_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	int ret;
 
 	/*
@@ -261,7 +261,7 @@
 	struct usb_device *udev = dev_get_parent_priv(dev);
 	struct lan7x_private *priv = dev_get_priv(dev);
 	struct ueth_data *ueth = &priv->ueth;
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	int ret;
 
 	/* Do a reset in order to get the MAC address from HW */
diff --git a/drivers/usb/eth/lan78xx.c b/drivers/usb/eth/lan78xx.c
index cc02e4d..37912a1 100644
--- a/drivers/usb/eth/lan78xx.c
+++ b/drivers/usb/eth/lan78xx.c
@@ -306,7 +306,7 @@
 int lan78xx_write_hwaddr(struct udevice *dev)
 {
 	struct usb_device *udev = dev_get_parent_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	unsigned char *enetaddr = pdata->enetaddr;
 	u32 addr_lo = get_unaligned_le32(&enetaddr[0]);
 	u32 addr_hi = (u32)get_unaligned_le16(&enetaddr[4]);
@@ -410,7 +410,7 @@
 int lan78xx_read_rom_hwaddr(struct udevice *dev)
 {
 	struct usb_device *udev = dev_get_parent_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct lan7x_private *priv = dev_get_priv(dev);
 	int ret;
 
@@ -426,7 +426,7 @@
 	struct usb_device *udev = dev_get_parent_priv(dev);
 	struct lan7x_private *priv = dev_get_priv(dev);
 	struct ueth_data *ueth = &priv->ueth;
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	int ret;
 
 	/* Do a reset in order to get the MAC address from HW */
diff --git a/drivers/usb/eth/mcs7830.c b/drivers/usb/eth/mcs7830.c
index d835170..783ab62 100644
--- a/drivers/usb/eth/mcs7830.c
+++ b/drivers/usb/eth/mcs7830.c
@@ -893,7 +893,7 @@
 int mcs7830_write_hwaddr(struct udevice *dev)
 {
 	struct usb_device *udev = dev_get_parent_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	return mcs7830_write_mac_common(udev, pdata->enetaddr);
 }
@@ -902,7 +902,7 @@
 {
 	struct usb_device *udev = dev_get_parent_priv(dev);
 	struct mcs7830_private *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct ueth_data *ueth = &priv->ueth;
 
 	if (mcs7830_basic_reset(udev, priv))
diff --git a/drivers/usb/eth/r8152.c b/drivers/usb/eth/r8152.c
index 600e9f5..e20cf69 100644
--- a/drivers/usb/eth/r8152.c
+++ b/drivers/usb/eth/r8152.c
@@ -1774,7 +1774,7 @@
 
 static int r8152_write_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct r8152 *tp = dev_get_priv(dev);
 
 	unsigned char enetaddr[8] = { 0 };
@@ -1792,7 +1792,7 @@
 
 int r8152_read_rom_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct r8152 *tp = dev_get_priv(dev);
 
 	debug("** %s (%d)\n", __func__, __LINE__);
@@ -1803,7 +1803,7 @@
 static int r8152_eth_probe(struct udevice *dev)
 {
 	struct usb_device *udev = dev_get_parent_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct r8152 *tp = dev_get_priv(dev);
 	struct ueth_data *ueth = &tp->ueth;
 	int ret;
diff --git a/drivers/usb/eth/smsc95xx.c b/drivers/usb/eth/smsc95xx.c
index 836b534..283c52c 100644
--- a/drivers/usb/eth/smsc95xx.c
+++ b/drivers/usb/eth/smsc95xx.c
@@ -937,7 +937,7 @@
 {
 	struct usb_device *udev = dev_get_parent_priv(dev);
 	struct smsc95xx_private *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	/* Driver-model Ethernet ensures we have this */
 	priv->have_hwaddr = 1;
@@ -1020,7 +1020,7 @@
 int smsc95xx_write_hwaddr(struct udevice *dev)
 {
 	struct usb_device *udev = dev_get_parent_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct smsc95xx_private *priv = dev_get_priv(dev);
 
 	return smsc95xx_write_hwaddr_common(udev, priv, pdata->enetaddr);
@@ -1029,7 +1029,7 @@
 int smsc95xx_read_rom_hwaddr(struct udevice *dev)
 {
 	struct usb_device *udev = dev_get_parent_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	int ret;
 
 	ret = smsc95xx_init_mac_address(pdata->enetaddr, udev);
diff --git a/drivers/usb/gadget/dwc2_udc_otg.c b/drivers/usb/gadget/dwc2_udc_otg.c
index 93b1c60..2d5b7dc 100644
--- a/drivers/usb/gadget/dwc2_udc_otg.c
+++ b/drivers/usb/gadget/dwc2_udc_otg.c
@@ -982,7 +982,7 @@
 
 static int dwc2_udc_otg_ofdata_to_platdata(struct udevice *dev)
 {
-	struct dwc2_plat_otg_data *plat = dev_get_platdata(dev);
+	struct dwc2_plat_otg_data *plat = dev_get_plat(dev);
 	ulong drvdata;
 	void (*set_params)(struct dwc2_plat_otg_data *data);
 	int ret;
@@ -1090,7 +1090,7 @@
 
 static int dwc2_udc_otg_probe(struct udevice *dev)
 {
-	struct dwc2_plat_otg_data *plat = dev_get_platdata(dev);
+	struct dwc2_plat_otg_data *plat = dev_get_plat(dev);
 	struct dwc2_priv_data *priv = dev_get_priv(dev);
 	struct dwc2_usbotg_reg *usbotg_reg =
 		(struct dwc2_usbotg_reg *)plat->regs_otg;
@@ -1194,7 +1194,7 @@
 
 int dwc2_udc_B_session_valid(struct udevice *dev)
 {
-	struct dwc2_plat_otg_data *plat = dev_get_platdata(dev);
+	struct dwc2_plat_otg_data *plat = dev_get_plat(dev);
 	struct dwc2_usbotg_reg *usbotg_reg =
 		(struct dwc2_usbotg_reg *)plat->regs_otg;
 
diff --git a/drivers/usb/gadget/ether.c b/drivers/usb/gadget/ether.c
index 9d4bb9d..7830a4a 100644
--- a/drivers/usb/gadget/ether.c
+++ b/drivers/usb/gadget/ether.c
@@ -2009,7 +2009,7 @@
 	int			gcnum;
 	u8			tmp[7];
 #ifdef CONFIG_DM_ETH
-	struct eth_pdata	*pdata = dev_get_platdata(l_priv->netdev);
+	struct eth_pdata	*pdata = dev_get_plat(l_priv->netdev);
 #endif
 
 	/* these flags are only ever cleared; compiler take note */
@@ -2646,7 +2646,7 @@
 static int usb_eth_probe(struct udevice *dev)
 {
 	struct ether_priv *priv = dev_get_priv(dev);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	priv->netdev = dev;
 	l_priv = priv;
diff --git a/drivers/usb/host/dwc3-of-simple.c b/drivers/usb/host/dwc3-of-simple.c
index 9b1edcd..66b3e96 100644
--- a/drivers/usb/host/dwc3-of-simple.c
+++ b/drivers/usb/host/dwc3-of-simple.c
@@ -64,7 +64,7 @@
 
 static int dwc3_of_simple_probe(struct udevice *dev)
 {
-	struct dwc3_of_simple *simple = dev_get_platdata(dev);
+	struct dwc3_of_simple *simple = dev_get_plat(dev);
 	int ret;
 
 	ret = dwc3_of_simple_clk_init(dev, simple);
@@ -80,7 +80,7 @@
 
 static int dwc3_of_simple_remove(struct udevice *dev)
 {
-	struct dwc3_of_simple *simple = dev_get_platdata(dev);
+	struct dwc3_of_simple *simple = dev_get_plat(dev);
 
 	reset_release_bulk(&simple->resets);
 
diff --git a/drivers/usb/host/dwc3-sti-glue.c b/drivers/usb/host/dwc3-sti-glue.c
index e9ebe2e..90266c7 100644
--- a/drivers/usb/host/dwc3-sti-glue.c
+++ b/drivers/usb/host/dwc3-sti-glue.c
@@ -102,7 +102,7 @@
 
 static int sti_dwc3_glue_ofdata_to_platdata(struct udevice *dev)
 {
-	struct sti_dwc3_glue_platdata *plat = dev_get_platdata(dev);
+	struct sti_dwc3_glue_platdata *plat = dev_get_plat(dev);
 	struct udevice *syscon;
 	struct regmap *regmap;
 	int ret;
@@ -150,7 +150,7 @@
 
 static int sti_dwc3_glue_bind(struct udevice *dev)
 {
-	struct sti_dwc3_glue_platdata *plat = dev_get_platdata(dev);
+	struct sti_dwc3_glue_platdata *plat = dev_get_plat(dev);
 	ofnode node, dwc3_node;
 
 	/* Find snps,dwc3 node from subnode */
@@ -175,7 +175,7 @@
 
 static int sti_dwc3_glue_probe(struct udevice *dev)
 {
-	struct sti_dwc3_glue_platdata *plat = dev_get_platdata(dev);
+	struct sti_dwc3_glue_platdata *plat = dev_get_plat(dev);
 	int ret;
 
 	/* deassert both powerdown and softreset */
@@ -216,7 +216,7 @@
 
 static int sti_dwc3_glue_remove(struct udevice *dev)
 {
-	struct sti_dwc3_glue_platdata *plat = dev_get_platdata(dev);
+	struct sti_dwc3_glue_platdata *plat = dev_get_plat(dev);
 	int ret;
 
 	/* assert both powerdown and softreset */
diff --git a/drivers/usb/host/ehci-exynos.c b/drivers/usb/host/ehci-exynos.c
index d1ff3f4..0a3983b 100644
--- a/drivers/usb/host/ehci-exynos.c
+++ b/drivers/usb/host/ehci-exynos.c
@@ -45,7 +45,7 @@
 
 static int ehci_usb_ofdata_to_platdata(struct udevice *dev)
 {
-	struct exynos_ehci_platdata *plat = dev_get_platdata(dev);
+	struct exynos_ehci_platdata *plat = dev_get_plat(dev);
 	const void *blob = gd->fdt_blob;
 	unsigned int node;
 	int depth;
@@ -214,7 +214,7 @@
 
 static int ehci_usb_probe(struct udevice *dev)
 {
-	struct exynos_ehci_platdata *plat = dev_get_platdata(dev);
+	struct exynos_ehci_platdata *plat = dev_get_plat(dev);
 	struct exynos_ehci *ctx = dev_get_priv(dev);
 	struct ehci_hcor *hcor;
 
diff --git a/drivers/usb/host/ehci-msm.c b/drivers/usb/host/ehci-msm.c
index 13ee268..6143de2 100644
--- a/drivers/usb/host/ehci-msm.c
+++ b/drivers/usb/host/ehci-msm.c
@@ -47,7 +47,7 @@
 {
 	struct msm_ehci_priv *p = dev_get_priv(dev);
 	struct usb_ehci *ehci = p->ehci;
-	struct usb_platdata *plat = dev_get_platdata(dev);
+	struct usb_platdata *plat = dev_get_plat(dev);
 	struct ehci_hccr *hccr;
 	struct ehci_hcor *hcor;
 	int ret;
diff --git a/drivers/usb/host/ehci-mx5.c b/drivers/usb/host/ehci-mx5.c
index df54431..717ef68 100644
--- a/drivers/usb/host/ehci-mx5.c
+++ b/drivers/usb/host/ehci-mx5.c
@@ -287,7 +287,7 @@
 
 static int ehci_usb_ofdata_to_platdata(struct udevice *dev)
 {
-	struct usb_platdata *plat = dev_get_platdata(dev);
+	struct usb_platdata *plat = dev_get_plat(dev);
 	const char *mode;
 
 	mode = fdt_getprop(gd->fdt_blob, dev_of_offset(dev), "dr_mode", NULL);
@@ -305,7 +305,7 @@
 
 static int ehci_usb_probe(struct udevice *dev)
 {
-	struct usb_platdata *plat = dev_get_platdata(dev);
+	struct usb_platdata *plat = dev_get_plat(dev);
 	struct usb_ehci *ehci = dev_read_addr_ptr(dev);
 	struct ehci_mx5_priv_data *priv = dev_get_priv(dev);
 	enum usb_init_type type = plat->init_type;
diff --git a/drivers/usb/host/ehci-mx6.c b/drivers/usb/host/ehci-mx6.c
index 981bf81..53f0e49 100644
--- a/drivers/usb/host/ehci-mx6.c
+++ b/drivers/usb/host/ehci-mx6.c
@@ -472,7 +472,7 @@
 
 static int ehci_usb_phy_mode(struct udevice *dev)
 {
-	struct usb_platdata *plat = dev_get_platdata(dev);
+	struct usb_platdata *plat = dev_get_plat(dev);
 	void *__iomem addr = dev_read_addr_ptr(dev);
 	void *__iomem phy_ctrl, *__iomem phy_status;
 	const void *blob = gd->fdt_blob;
@@ -520,7 +520,7 @@
 
 static int ehci_usb_ofdata_to_platdata(struct udevice *dev)
 {
-	struct usb_platdata *plat = dev_get_platdata(dev);
+	struct usb_platdata *plat = dev_get_plat(dev);
 	enum usb_dr_mode dr_mode;
 
 	dr_mode = usb_get_dr_mode(dev->node);
@@ -579,7 +579,7 @@
 
 static int ehci_usb_probe(struct udevice *dev)
 {
-	struct usb_platdata *plat = dev_get_platdata(dev);
+	struct usb_platdata *plat = dev_get_plat(dev);
 	struct usb_ehci *ehci = dev_read_addr_ptr(dev);
 	struct ehci_mx6_priv_data *priv = dev_get_priv(dev);
 	enum usb_init_type type = plat->init_type;
diff --git a/drivers/usb/host/ehci-omap.c b/drivers/usb/host/ehci-omap.c
index 51c5029..0ca20a9 100644
--- a/drivers/usb/host/ehci-omap.c
+++ b/drivers/usb/host/ehci-omap.c
@@ -368,7 +368,7 @@
 
 static int ehci_usb_ofdata_to_platdata(struct udevice *dev)
 {
-	struct usb_platdata *plat = dev_get_platdata(dev);
+	struct usb_platdata *plat = dev_get_plat(dev);
 
 	plat->init_type = USB_INIT_HOST;
 
@@ -377,7 +377,7 @@
 
 static int omap_ehci_probe(struct udevice *dev)
 {
-	struct usb_platdata *plat = dev_get_platdata(dev);
+	struct usb_platdata *plat = dev_get_plat(dev);
 	struct ehci_omap_priv_data *priv = dev_get_priv(dev);
 	struct ehci_hccr *hccr;
 	struct ehci_hcor *hcor;
diff --git a/drivers/usb/host/ehci-tegra.c b/drivers/usb/host/ehci-tegra.c
index c76e9c3..68a4904 100644
--- a/drivers/usb/host/ehci-tegra.c
+++ b/drivers/usb/host/ehci-tegra.c
@@ -828,7 +828,7 @@
 
 static int ehci_usb_probe(struct udevice *dev)
 {
-	struct usb_platdata *plat = dev_get_platdata(dev);
+	struct usb_platdata *plat = dev_get_plat(dev);
 	struct fdt_usb *priv = dev_get_priv(dev);
 	struct ehci_hccr *hccr;
 	struct ehci_hcor *hcor;
diff --git a/drivers/usb/host/ehci-vf.c b/drivers/usb/host/ehci-vf.c
index c0500e3..e311282 100644
--- a/drivers/usb/host/ehci-vf.c
+++ b/drivers/usb/host/ehci-vf.c
@@ -312,7 +312,7 @@
 
 static int ehci_usb_probe(struct udevice *dev)
 {
-	struct usb_platdata *plat = dev_get_platdata(dev);
+	struct usb_platdata *plat = dev_get_plat(dev);
 	struct ehci_vf_priv_data *priv = dev_get_priv(dev);
 	struct usb_ehci *ehci = priv->ehci;
 	struct ehci_hccr *hccr;
diff --git a/drivers/usb/host/ehci-zynq.c b/drivers/usb/host/ehci-zynq.c
index df7ea0a..7a7cfaa 100644
--- a/drivers/usb/host/ehci-zynq.c
+++ b/drivers/usb/host/ehci-zynq.c
@@ -34,7 +34,7 @@
 
 static int ehci_zynq_probe(struct udevice *dev)
 {
-	struct usb_platdata *plat = dev_get_platdata(dev);
+	struct usb_platdata *plat = dev_get_plat(dev);
 	struct zynq_ehci_priv *priv = dev_get_priv(dev);
 	struct ehci_hccr *hccr;
 	struct ehci_hcor *hcor;
diff --git a/drivers/usb/host/usb-uclass.c b/drivers/usb/host/usb-uclass.c
index 8e4e9e8..94ce9a6 100644
--- a/drivers/usb/host/usb-uclass.c
+++ b/drivers/usb/host/usb-uclass.c
@@ -401,7 +401,7 @@
 	if (ret)
 		return ret;
 
-	plat = dev_get_platdata(dev);
+	plat = dev_get_plat(dev);
 	plat->init_type = USB_INIT_DEVICE;
 	ret = device_probe(dev);
 	if (ret)
diff --git a/drivers/usb/host/xhci-brcm.c b/drivers/usb/host/xhci-brcm.c
index cc20cf0..31e4265 100644
--- a/drivers/usb/host/xhci-brcm.c
+++ b/drivers/usb/host/xhci-brcm.c
@@ -30,7 +30,7 @@
 
 static int xhci_brcm_probe(struct udevice *dev)
 {
-	struct brcm_xhci_platdata *plat = dev_get_platdata(dev);
+	struct brcm_xhci_platdata *plat = dev_get_plat(dev);
 	struct xhci_hcor *hcor;
 	struct xhci_hccr *hcd;
 	int len, ret = 0;
@@ -71,7 +71,7 @@
 
 static int xhci_brcm_deregister(struct udevice *dev)
 {
-	struct brcm_xhci_platdata *plat = dev_get_platdata(dev);
+	struct brcm_xhci_platdata *plat = dev_get_plat(dev);
 
 	/* Restore the default values for AXI read and write attributes */
 	writel(plat->awcache, plat->hc_base + DRD2U3H_XHC_REGS_AXIWRA);
diff --git a/drivers/usb/host/xhci-dwc3.c b/drivers/usb/host/xhci-dwc3.c
index a57762f..f6534a2 100644
--- a/drivers/usb/host/xhci-dwc3.c
+++ b/drivers/usb/host/xhci-dwc3.c
@@ -117,7 +117,7 @@
 	struct xhci_hccr *hccr;
 	struct dwc3 *dwc3_reg;
 	enum usb_dr_mode dr_mode;
-	struct xhci_dwc3_platdata *plat = dev_get_platdata(dev);
+	struct xhci_dwc3_platdata *plat = dev_get_plat(dev);
 	const char *phy;
 	u32 reg;
 	int ret;
@@ -167,7 +167,7 @@
 
 static int xhci_dwc3_remove(struct udevice *dev)
 {
-	struct xhci_dwc3_platdata *plat = dev_get_platdata(dev);
+	struct xhci_dwc3_platdata *plat = dev_get_plat(dev);
 
 	dwc3_shutdown_phy(dev, &plat->phys);
 
diff --git a/drivers/usb/host/xhci-exynos5.c b/drivers/usb/host/xhci-exynos5.c
index 39e651e..4d3dd36 100644
--- a/drivers/usb/host/xhci-exynos5.c
+++ b/drivers/usb/host/xhci-exynos5.c
@@ -54,7 +54,7 @@
 
 static int xhci_usb_ofdata_to_platdata(struct udevice *dev)
 {
-	struct exynos_xhci_platdata *plat = dev_get_platdata(dev);
+	struct exynos_xhci_platdata *plat = dev_get_plat(dev);
 	const void *blob = gd->fdt_blob;
 	unsigned int node;
 	int depth;
@@ -205,7 +205,7 @@
 
 static int xhci_usb_probe(struct udevice *dev)
 {
-	struct exynos_xhci_platdata *plat = dev_get_platdata(dev);
+	struct exynos_xhci_platdata *plat = dev_get_plat(dev);
 	struct exynos_xhci *ctx = dev_get_priv(dev);
 	struct xhci_hcor *hcor;
 	int ret;
diff --git a/drivers/usb/host/xhci-mvebu.c b/drivers/usb/host/xhci-mvebu.c
index 1762bbb..ffecfc2 100644
--- a/drivers/usb/host/xhci-mvebu.c
+++ b/drivers/usb/host/xhci-mvebu.c
@@ -40,7 +40,7 @@
 
 static int xhci_usb_probe(struct udevice *dev)
 {
-	struct mvebu_xhci_platdata *plat = dev_get_platdata(dev);
+	struct mvebu_xhci_platdata *plat = dev_get_plat(dev);
 	struct mvebu_xhci *ctx = dev_get_priv(dev);
 	struct xhci_hcor *hcor;
 	int len, ret;
@@ -67,7 +67,7 @@
 
 static int xhci_usb_ofdata_to_platdata(struct udevice *dev)
 {
-	struct mvebu_xhci_platdata *plat = dev_get_platdata(dev);
+	struct mvebu_xhci_platdata *plat = dev_get_plat(dev);
 
 	/*
 	 * Get the base address for XHCI controller from the device node
diff --git a/drivers/usb/host/xhci-rcar.c b/drivers/usb/host/xhci-rcar.c
index 2ef072b..22dfaf4 100644
--- a/drivers/usb/host/xhci-rcar.c
+++ b/drivers/usb/host/xhci-rcar.c
@@ -76,7 +76,7 @@
 
 static int xhci_rcar_probe(struct udevice *dev)
 {
-	struct rcar_xhci_platdata *plat = dev_get_platdata(dev);
+	struct rcar_xhci_platdata *plat = dev_get_plat(dev);
 	struct rcar_xhci *ctx = dev_get_priv(dev);
 	struct xhci_hcor *hcor;
 	int len, ret;
@@ -122,7 +122,7 @@
 static int xhci_rcar_deregister(struct udevice *dev)
 {
 	int ret;
-	struct rcar_xhci_platdata *plat = dev_get_platdata(dev);
+	struct rcar_xhci_platdata *plat = dev_get_plat(dev);
 
 	ret = xhci_deregister(dev);
 
@@ -134,7 +134,7 @@
 
 static int xhci_rcar_ofdata_to_platdata(struct udevice *dev)
 {
-	struct rcar_xhci_platdata *plat = dev_get_platdata(dev);
+	struct rcar_xhci_platdata *plat = dev_get_plat(dev);
 
 	plat->hcd_base = dev_read_addr(dev);
 	if (plat->hcd_base == FDT_ADDR_T_NONE) {
diff --git a/drivers/usb/musb-new/da8xx.c b/drivers/usb/musb-new/da8xx.c
index 2889e85..d9591b9 100644
--- a/drivers/usb/musb-new/da8xx.c
+++ b/drivers/usb/musb-new/da8xx.c
@@ -258,7 +258,7 @@
 
 static int da8xx_musb_ofdata_to_platdata(struct udevice *dev)
 {
-	struct da8xx_musb_platdata *plat = dev_get_platdata(dev);
+	struct da8xx_musb_platdata *plat = dev_get_plat(dev);
 	const void *fdt = gd->fdt_blob;
 	int node = dev_of_offset(dev);
 
@@ -282,7 +282,7 @@
 static int da8xx_musb_probe(struct udevice *dev)
 {
 	struct musb_host_data *host = dev_get_priv(dev);
-	struct da8xx_musb_platdata *plat = dev_get_platdata(dev);
+	struct da8xx_musb_platdata *plat = dev_get_plat(dev);
 	struct usb_bus_priv *priv = dev_get_uclass_priv(dev);
 	struct omap_musb_board_data *otg_board_data;
 	int ret;
diff --git a/drivers/usb/musb-new/omap2430.c b/drivers/usb/musb-new/omap2430.c
index 9150c4d..b09f0d4 100644
--- a/drivers/usb/musb-new/omap2430.c
+++ b/drivers/usb/musb-new/omap2430.c
@@ -151,7 +151,7 @@
 
 static int omap2430_musb_ofdata_to_platdata(struct udevice *dev)
 {
-	struct omap2430_musb_platdata *plat = dev_get_platdata(dev);
+	struct omap2430_musb_platdata *plat = dev_get_plat(dev);
 	const void *fdt = gd->fdt_blob;
 	int node = dev_of_offset(dev);
 
@@ -218,7 +218,7 @@
 #else
 	struct musb *musbp;
 #endif
-	struct omap2430_musb_platdata *plat = dev_get_platdata(dev);
+	struct omap2430_musb_platdata *plat = dev_get_plat(dev);
 	struct usb_bus_priv *priv = dev_get_uclass_priv(dev);
 	struct omap_musb_board_data *otg_board_data;
 	int ret = 0;
diff --git a/drivers/usb/musb-new/ti-musb.c b/drivers/usb/musb-new/ti-musb.c
index 29a0632..716e820 100644
--- a/drivers/usb/musb-new/ti-musb.c
+++ b/drivers/usb/musb-new/ti-musb.c
@@ -33,7 +33,7 @@
 
 static void ti_musb_set_phy_power(struct udevice *dev, u8 on)
 {
-	struct ti_musb_platdata *plat = dev_get_platdata(dev);
+	struct ti_musb_platdata *plat = dev_get_plat(dev);
 
 	if (!plat->ctrl_mod_base)
 		return;
@@ -79,7 +79,7 @@
 
 static int ti_musb_ofdata_to_platdata(struct udevice *dev)
 {
-	struct ti_musb_platdata *plat = dev_get_platdata(dev);
+	struct ti_musb_platdata *plat = dev_get_plat(dev);
 	const void *fdt = gd->fdt_blob;
 	int node = dev_of_offset(dev);
 	int phys;
@@ -147,7 +147,7 @@
 static int ti_musb_host_probe(struct udevice *dev)
 {
 	struct musb_host_data *host = dev_get_priv(dev);
-	struct ti_musb_platdata *plat = dev_get_platdata(dev);
+	struct ti_musb_platdata *plat = dev_get_plat(dev);
 	struct usb_bus_priv *priv = dev_get_uclass_priv(dev);
 	int ret;
 
@@ -178,7 +178,7 @@
 #if CONFIG_IS_ENABLED(OF_CONTROL)
 static int ti_musb_host_ofdata_to_platdata(struct udevice *dev)
 {
-	struct ti_musb_platdata *plat = dev_get_platdata(dev);
+	struct ti_musb_platdata *plat = dev_get_plat(dev);
 	const void *fdt = gd->fdt_blob;
 	int node = dev_of_offset(dev);
 	int ret;
@@ -216,7 +216,7 @@
 #if CONFIG_IS_ENABLED(OF_CONTROL)
 static int ti_musb_peripheral_ofdata_to_platdata(struct udevice *dev)
 {
-	struct ti_musb_platdata *plat = dev_get_platdata(dev);
+	struct ti_musb_platdata *plat = dev_get_plat(dev);
 	const void *fdt = gd->fdt_blob;
 	int node = dev_of_offset(dev);
 	int ret;
@@ -244,7 +244,7 @@
 static int ti_musb_peripheral_probe(struct udevice *dev)
 {
 	struct ti_musb_peripheral *priv = dev_get_priv(dev);
-	struct ti_musb_platdata *plat = dev_get_platdata(dev);
+	struct ti_musb_platdata *plat = dev_get_plat(dev);
 	int ret;
 
 	priv->periph = musb_init_controller(&plat->plat,
diff --git a/drivers/video/atmel_lcdfb.c b/drivers/video/atmel_lcdfb.c
index 3af3ea4..83367c4 100644
--- a/drivers/video/atmel_lcdfb.c
+++ b/drivers/video/atmel_lcdfb.c
@@ -269,7 +269,7 @@
 
 static int atmel_fb_ofdata_to_platdata(struct udevice *dev)
 {
-	struct atmel_lcd_platdata *plat = dev_get_platdata(dev);
+	struct atmel_lcd_platdata *plat = dev_get_plat(dev);
 	struct atmel_fb_priv *priv = dev_get_priv(dev);
 	struct display_timing *timing = &priv->timing;
 	const void *blob = gd->fdt_blob;
diff --git a/drivers/video/broadwell_igd.c b/drivers/video/broadwell_igd.c
index 94d9470..69bf2ee 100644
--- a/drivers/video/broadwell_igd.c
+++ b/drivers/video/broadwell_igd.c
@@ -356,7 +356,7 @@
 
 static void igd_setup_panel(struct udevice *dev)
 {
-	struct broadwell_igd_plat *plat = dev_get_platdata(dev);
+	struct broadwell_igd_plat *plat = dev_get_plat(dev);
 	struct broadwell_igd_priv *priv = dev_get_priv(dev);
 	u32 reg32;
 
@@ -398,7 +398,7 @@
 
 static int igd_cdclk_init_haswell(struct udevice *dev)
 {
-	struct broadwell_igd_plat *plat = dev_get_platdata(dev);
+	struct broadwell_igd_plat *plat = dev_get_plat(dev);
 	struct broadwell_igd_priv *priv = dev_get_priv(dev);
 	int cdclk = plat->cdclk;
 	u16 devid;
@@ -472,7 +472,7 @@
 
 static int igd_cdclk_init_broadwell(struct udevice *dev)
 {
-	struct broadwell_igd_plat *plat = dev_get_platdata(dev);
+	struct broadwell_igd_plat *plat = dev_get_plat(dev);
 	struct broadwell_igd_priv *priv = dev_get_priv(dev);
 	int cdclk = plat->cdclk;
 	u32 dpdiv, lpcll, pwctl, cdset;
@@ -567,7 +567,7 @@
 
 static int igd_pre_init(struct udevice *dev, bool is_broadwell)
 {
-	struct broadwell_igd_plat *plat = dev_get_platdata(dev);
+	struct broadwell_igd_plat *plat = dev_get_plat(dev);
 	struct broadwell_igd_priv *priv = dev_get_priv(dev);
 	u32 rp1_gfx_freq;
 	int ret;
@@ -708,7 +708,7 @@
 
 static int broadwell_igd_ofdata_to_platdata(struct udevice *dev)
 {
-	struct broadwell_igd_plat *plat = dev_get_platdata(dev);
+	struct broadwell_igd_plat *plat = dev_get_plat(dev);
 	struct broadwell_igd_priv *priv = dev_get_priv(dev);
 	int node = dev_of_offset(dev);
 	const void *blob = gd->fdt_blob;
diff --git a/drivers/video/nexell_display.c b/drivers/video/nexell_display.c
index b1f8134..ef0fdf6 100644
--- a/drivers/video/nexell_display.c
+++ b/drivers/video/nexell_display.c
@@ -536,7 +536,7 @@
 {
 	struct video_uc_platdata *uc_plat = dev_get_uclass_plat(dev);
 	struct video_priv *uc_priv = dev_get_uclass_priv(dev);
-	struct nx_display_platdata *plat = dev_get_platdata(dev);
+	struct nx_display_platdata *plat = dev_get_plat(dev);
 	static GraphicDevice *graphic_device;
 	char addr[64];
 
diff --git a/drivers/video/orisetech_otm8009a.c b/drivers/video/orisetech_otm8009a.c
index 190bb55..39c1c33 100644
--- a/drivers/video/orisetech_otm8009a.c
+++ b/drivers/video/orisetech_otm8009a.c
@@ -79,7 +79,7 @@
 static void otm8009a_dcs_write_buf(struct udevice *dev, const void *data,
 				   size_t len)
 {
-	struct mipi_dsi_panel_plat *plat = dev_get_platdata(dev);
+	struct mipi_dsi_panel_plat *plat = dev_get_plat(dev);
 	struct mipi_dsi_device *device = plat->device;
 
 	if (mipi_dsi_dcs_write_buffer(device, data, len) < 0)
@@ -89,7 +89,7 @@
 static void otm8009a_dcs_write_buf_hs(struct udevice *dev, const void *data,
 				      size_t len)
 {
-	struct mipi_dsi_panel_plat *plat = dev_get_platdata(dev);
+	struct mipi_dsi_panel_plat *plat = dev_get_plat(dev);
 	struct mipi_dsi_device *device = plat->device;
 
 	/* data will be sent in dsi hs mode (ie. no lpm) */
@@ -124,7 +124,7 @@
 
 static int otm8009a_init_sequence(struct udevice *dev)
 {
-	struct mipi_dsi_panel_plat *plat = dev_get_platdata(dev);
+	struct mipi_dsi_panel_plat *plat = dev_get_plat(dev);
 	struct mipi_dsi_device *device = plat->device;
 	int ret;
 
@@ -255,7 +255,7 @@
 
 static int otm8009a_panel_enable_backlight(struct udevice *dev)
 {
-	struct mipi_dsi_panel_plat *plat = dev_get_platdata(dev);
+	struct mipi_dsi_panel_plat *plat = dev_get_plat(dev);
 	struct mipi_dsi_device *device = plat->device;
 	int ret;
 
@@ -323,7 +323,7 @@
 static int otm8009a_panel_probe(struct udevice *dev)
 {
 	struct otm8009a_panel_priv *priv = dev_get_priv(dev);
-	struct mipi_dsi_panel_plat *plat = dev_get_platdata(dev);
+	struct mipi_dsi_panel_plat *plat = dev_get_plat(dev);
 	int ret;
 
 	if (IS_ENABLED(CONFIG_DM_REGULATOR) && priv->reg) {
diff --git a/drivers/video/raydium-rm68200.c b/drivers/video/raydium-rm68200.c
index 82e8f04..a370cd9 100644
--- a/drivers/video/raydium-rm68200.c
+++ b/drivers/video/raydium-rm68200.c
@@ -92,7 +92,7 @@
 static void rm68200_dcs_write_buf(struct udevice *dev, const void *data,
 				  size_t len)
 {
-	struct mipi_dsi_panel_plat *plat = dev_get_platdata(dev);
+	struct mipi_dsi_panel_plat *plat = dev_get_plat(dev);
 	struct mipi_dsi_device *device = plat->device;
 	int err;
 
@@ -103,7 +103,7 @@
 
 static void rm68200_dcs_write_cmd(struct udevice *dev, u8 cmd, u8 value)
 {
-	struct mipi_dsi_panel_plat *plat = dev_get_platdata(dev);
+	struct mipi_dsi_panel_plat *plat = dev_get_plat(dev);
 	struct mipi_dsi_device *device = plat->device;
 	int err;
 
@@ -223,7 +223,7 @@
 
 static int rm68200_panel_enable_backlight(struct udevice *dev)
 {
-	struct mipi_dsi_panel_plat *plat = dev_get_platdata(dev);
+	struct mipi_dsi_panel_plat *plat = dev_get_plat(dev);
 	struct mipi_dsi_device *device = plat->device;
 	struct rm68200_panel_priv *priv = dev_get_priv(dev);
 	int ret;
@@ -296,7 +296,7 @@
 static int rm68200_panel_probe(struct udevice *dev)
 {
 	struct rm68200_panel_priv *priv = dev_get_priv(dev);
-	struct mipi_dsi_panel_plat *plat = dev_get_platdata(dev);
+	struct mipi_dsi_panel_plat *plat = dev_get_plat(dev);
 	int ret;
 
 	if (IS_ENABLED(CONFIG_DM_REGULATOR) && priv->reg) {
diff --git a/drivers/video/sandbox_sdl.c b/drivers/video/sandbox_sdl.c
index cf1446e..3e231e8 100644
--- a/drivers/video/sandbox_sdl.c
+++ b/drivers/video/sandbox_sdl.c
@@ -24,7 +24,7 @@
 static int sandbox_sdl_probe(struct udevice *dev)
 {
 	struct video_uc_platdata *uc_plat = dev_get_uclass_plat(dev);
-	struct sandbox_sdl_plat *plat = dev_get_platdata(dev);
+	struct sandbox_sdl_plat *plat = dev_get_plat(dev);
 	struct video_priv *uc_priv = dev_get_uclass_priv(dev);
 	struct sandbox_state *state = state_get_current();
 	int ret;
@@ -50,7 +50,7 @@
 static int sandbox_sdl_bind(struct udevice *dev)
 {
 	struct video_uc_platdata *uc_plat = dev_get_uclass_plat(dev);
-	struct sandbox_sdl_plat *plat = dev_get_platdata(dev);
+	struct sandbox_sdl_plat *plat = dev_get_plat(dev);
 	int ret = 0;
 
 	plat->xres = dev_read_u32_default(dev, "xres", LCD_MAX_WIDTH);
diff --git a/drivers/video/stm32/stm32_dsi.c b/drivers/video/stm32/stm32_dsi.c
index 9941382..266623b 100644
--- a/drivers/video/stm32/stm32_dsi.c
+++ b/drivers/video/stm32/stm32_dsi.c
@@ -351,7 +351,7 @@
 		return ret;
 	}
 
-	mplat = dev_get_platdata(priv->panel);
+	mplat = dev_get_plat(priv->panel);
 	mplat->device = &priv->device;
 	device->lanes = mplat->lanes;
 	device->format = mplat->format;
diff --git a/drivers/video/tegra124/dp.c b/drivers/video/tegra124/dp.c
index 8519b53..d9599ee 100644
--- a/drivers/video/tegra124/dp.c
+++ b/drivers/video/tegra124/dp.c
@@ -1568,7 +1568,7 @@
 
 static int tegra_dp_ofdata_to_platdata(struct udevice *dev)
 {
-	struct tegra_dp_plat *plat = dev_get_platdata(dev);
+	struct tegra_dp_plat *plat = dev_get_plat(dev);
 
 	plat->base = dev_read_addr(dev);
 
@@ -1594,7 +1594,7 @@
 
 static int dp_tegra_probe(struct udevice *dev)
 {
-	struct tegra_dp_plat *plat = dev_get_platdata(dev);
+	struct tegra_dp_plat *plat = dev_get_plat(dev);
 	struct tegra_dp_priv *priv = dev_get_priv(dev);
 	struct display_plat *disp_uc_plat = dev_get_uclass_plat(dev);
 
diff --git a/drivers/virtio/virtio_net.c b/drivers/virtio/virtio_net.c
index b32ce3c..1794f73 100644
--- a/drivers/virtio/virtio_net.c
+++ b/drivers/virtio/virtio_net.c
@@ -145,7 +145,7 @@
 static int virtio_net_write_hwaddr(struct udevice *dev)
 {
 	struct virtio_dev_priv *uc_priv = dev_get_uclass_priv(dev->parent);
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 	int i;
 
 	/*
@@ -166,7 +166,7 @@
 
 static int virtio_net_read_rom_hwaddr(struct udevice *dev)
 {
-	struct eth_pdata *pdata = dev_get_platdata(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
 
 	if (!pdata)
 		return -ENOSYS;
diff --git a/drivers/w1/mxc_w1.c b/drivers/w1/mxc_w1.c
index d8cbff7..99fb960 100644
--- a/drivers/w1/mxc_w1.c
+++ b/drivers/w1/mxc_w1.c
@@ -79,7 +79,7 @@
 
 static u8 mxc_w1_read_byte(struct udevice *dev)
 {
-	struct mxc_w1_pdata *pdata = dev_get_platdata(dev);
+	struct mxc_w1_pdata *pdata = dev_get_plat(dev);
 	struct mxc_w1_regs *regs = pdata->regs;
 	u16 status;
 
@@ -106,7 +106,7 @@
 
 static void mxc_w1_write_byte(struct udevice *dev, u8 byte)
 {
-	struct mxc_w1_pdata *pdata = dev_get_platdata(dev);
+	struct mxc_w1_pdata *pdata = dev_get_plat(dev);
 	struct mxc_w1_regs *regs = pdata->regs;
 	u16 status;
 
@@ -130,7 +130,7 @@
 
 static bool mxc_w1_reset(struct udevice *dev)
 {
-	struct mxc_w1_pdata *pdata = dev_get_platdata(dev);
+	struct mxc_w1_pdata *pdata = dev_get_plat(dev);
 	u16 reg_val;
 
 	writew(MXC_W1_CONTROL_RPP, &pdata->regs->control);
@@ -144,7 +144,7 @@
 
 static u8 mxc_w1_triplet(struct udevice *dev, bool bdir)
 {
-	struct mxc_w1_pdata *pdata = dev_get_platdata(dev);
+	struct mxc_w1_pdata *pdata = dev_get_plat(dev);
 	u8 id_bit   = mxc_w1_touch_bit(pdata, 1);
 	u8 comp_bit = mxc_w1_touch_bit(pdata, 1);
 	u8 retval;
@@ -168,7 +168,7 @@
 
 static int mxc_w1_ofdata_to_platdata(struct udevice *dev)
 {
-	struct mxc_w1_pdata *pdata = dev_get_platdata(dev);
+	struct mxc_w1_pdata *pdata = dev_get_plat(dev);
 	fdt_addr_t addr;
 
 	addr = dev_read_addr(dev);
@@ -182,7 +182,7 @@
 
 static int mxc_w1_probe(struct udevice *dev)
 {
-	struct mxc_w1_pdata *pdata = dev_get_platdata(dev);
+	struct mxc_w1_pdata *pdata = dev_get_plat(dev);
 	unsigned int clkrate = mxc_get_clock(MXC_IPG_PERCLK);
 	unsigned int clkdiv;
 
diff --git a/drivers/w1/w1-gpio.c b/drivers/w1/w1-gpio.c
index 2e5064f..fe4ebe2 100644
--- a/drivers/w1/w1-gpio.c
+++ b/drivers/w1/w1-gpio.c
@@ -33,7 +33,7 @@
 
 static bool w1_gpio_read_bit(struct udevice *dev)
 {
-	struct w1_gpio_pdata *pdata = dev_get_platdata(dev);
+	struct w1_gpio_pdata *pdata = dev_get_plat(dev);
 	int val;
 
 	dm_gpio_set_dir_flags(&pdata->gpio, GPIOD_IS_OUT);
@@ -63,7 +63,7 @@
 
 static void w1_gpio_write_bit(struct udevice *dev, bool bit)
 {
-	struct w1_gpio_pdata *pdata = dev_get_platdata(dev);
+	struct w1_gpio_pdata *pdata = dev_get_plat(dev);
 
 	dm_gpio_set_dir_flags(&pdata->gpio, GPIOD_IS_OUT);
 
@@ -84,7 +84,7 @@
 
 static bool w1_gpio_reset(struct udevice *dev)
 {
-	struct w1_gpio_pdata *pdata = dev_get_platdata(dev);
+	struct w1_gpio_pdata *pdata = dev_get_plat(dev);
 	int val;
 
 	/* initiate the reset pulse. first we must pull the bus to low */
@@ -153,7 +153,7 @@
 
 static int w1_gpio_ofdata_to_platdata(struct udevice *dev)
 {
-	struct w1_gpio_pdata *pdata = dev_get_platdata(dev);
+	struct w1_gpio_pdata *pdata = dev_get_plat(dev);
 	int ret;
 
 	ret = gpio_request_by_name(dev, "gpios", 0, &pdata->gpio, 0);
diff --git a/drivers/watchdog/xilinx_tb_wdt.c b/drivers/watchdog/xilinx_tb_wdt.c
index b3ee68d..46d5d28 100644
--- a/drivers/watchdog/xilinx_tb_wdt.c
+++ b/drivers/watchdog/xilinx_tb_wdt.c
@@ -34,7 +34,7 @@
 static int xlnx_wdt_reset(struct udevice *dev)
 {
 	u32 reg;
-	struct xlnx_wdt_platdata *plat = dev_get_platdata(dev);
+	struct xlnx_wdt_platdata *plat = dev_get_plat(dev);
 
 	debug("%s ", __func__);
 
@@ -51,7 +51,7 @@
 static int xlnx_wdt_stop(struct udevice *dev)
 {
 	u32 reg;
-	struct xlnx_wdt_platdata *plat = dev_get_platdata(dev);
+	struct xlnx_wdt_platdata *plat = dev_get_plat(dev);
 
 	if (plat->enable_once) {
 		debug("Can't stop Xilinx watchdog.\n");
@@ -71,7 +71,7 @@
 
 static int xlnx_wdt_start(struct udevice *dev, u64 timeout, ulong flags)
 {
-	struct xlnx_wdt_platdata *plat = dev_get_platdata(dev);
+	struct xlnx_wdt_platdata *plat = dev_get_plat(dev);
 
 	debug("%s:\n", __func__);
 
@@ -92,7 +92,7 @@
 
 static int xlnx_wdt_ofdata_to_platdata(struct udevice *dev)
 {
-	struct xlnx_wdt_platdata *plat = dev_get_platdata(dev);
+	struct xlnx_wdt_platdata *plat = dev_get_plat(dev);
 
 	plat->regs = (struct watchdog_regs *)dev_read_addr(dev);
 	if (IS_ERR(plat->regs))
diff --git a/drivers/watchdog/xilinx_wwdt.c b/drivers/watchdog/xilinx_wwdt.c
index 35d310d..6ce51a3 100644
--- a/drivers/watchdog/xilinx_wwdt.c
+++ b/drivers/watchdog/xilinx_wwdt.c
@@ -125,7 +125,7 @@
 static int xlnx_wwdt_probe(struct udevice *dev)
 {
 	int ret;
-	struct xlnx_wwdt_platdata *plat = dev_get_platdata(dev);
+	struct xlnx_wwdt_platdata *plat = dev_get_plat(dev);
 	struct xlnx_wwdt_priv *wdt = dev_get_priv(dev);
 
 	dev_dbg(dev, "%s: Probing wdt%u\n", __func__, dev->seq);
@@ -147,7 +147,7 @@
 
 static int xlnx_wwdt_ofdata_to_platdata(struct udevice *dev)
 {
-	struct xlnx_wwdt_platdata *plat = dev_get_platdata(dev);
+	struct xlnx_wwdt_platdata *plat = dev_get_plat(dev);
 
 	plat->enable_once = dev_read_u32_default(dev, "xlnx,wdt-enable-once",
 						 0);
diff --git a/drivers/xen/pvblock.c b/drivers/xen/pvblock.c
index b0c93d6..0f72241 100644
--- a/drivers/xen/pvblock.c
+++ b/drivers/xen/pvblock.c
@@ -685,7 +685,7 @@
 static int pvblock_blk_probe(struct udevice *udev)
 {
 	struct blkfront_dev *blk_dev = dev_get_priv(udev);
-	struct blkfront_platdata *plat = dev_get_platdata(udev);
+	struct blkfront_platdata *plat = dev_get_plat(udev);
 	struct blk_desc *desc = dev_get_uclass_plat(udev);
 	int ret, devid;
 
diff --git a/include/dm/device.h b/include/dm/device.h
index 5d31a2c..491542c 100644
--- a/include/dm/device.h
+++ b/include/dm/device.h
@@ -285,14 +285,14 @@
 #define U_BOOT_DRIVER_ALIAS(__name, __alias)
 
 /**
- * dev_get_platdata() - Get the platform data for a device
+ * dev_get_plat() - Get the platform data for a device
  *
  * This checks that dev is not NULL, but no other checks for now
  *
  * @dev		Device to check
  * @return platform data, or NULL if none
  */
-void *dev_get_platdata(const struct udevice *dev);
+void *dev_get_plat(const struct udevice *dev);
 
 /**
  * dev_get_parent_plat() - Get the parent platform data for a device
diff --git a/include/dwmmc.h b/include/dwmmc.h
index 4515a44..51ab74e 100644
--- a/include/dwmmc.h
+++ b/include/dwmmc.h
@@ -259,7 +259,7 @@
  *	.plat_auto	= sizeof(struct rockchip_mmc_plat),
  *
  * To access platform data:
- *	struct rockchip_mmc_plat *plat = dev_get_platdata(dev);
+ *	struct rockchip_mmc_plat *plat = dev_get_plat(dev);
  *
  * See rockchip_dw_mmc.c for an example.
  *
diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h
index 79dce8f..75b1635 100644
--- a/include/linux/clk-provider.h
+++ b/include/linux/clk-provider.h
@@ -144,7 +144,7 @@
 	unsigned long fixed_rate;
 };
 
-#define to_clk_fixed_rate(dev)	((struct clk_fixed_rate *)dev_get_platdata(dev))
+#define to_clk_fixed_rate(dev)	((struct clk_fixed_rate *)dev_get_plat(dev))
 
 struct clk_composite {
 	struct clk	clk;
diff --git a/include/sdhci.h b/include/sdhci.h
index 69c2087..3e5a649 100644
--- a/include/sdhci.h
+++ b/include/sdhci.h
@@ -443,7 +443,7 @@
  *	.plat_auto	= sizeof(struct msm_sdhc_plat),
  *
  * To access platform data:
- *	struct msm_sdhc_plat *plat = dev_get_platdata(dev);
+ *	struct msm_sdhc_plat *plat = dev_get_plat(dev);
  *
  * See msm_sdhci.c for an example.
  *
diff --git a/include/usb.h b/include/usb.h
index a3323f5..9e1ec53 100644
--- a/include/usb.h
+++ b/include/usb.h
@@ -599,7 +599,7 @@
 /**
  * struct usb_platdata - Platform data about a USB controller
  *
- * Given a USB controller (UCLASS_USB) dev this is dev_get_platdata(dev)
+ * Given a USB controller (UCLASS_USB) dev this is dev_get_plat(dev)
  */
 struct usb_platdata {
 	enum usb_init_type init_type;
diff --git a/lib/efi_driver/efi_block_device.c b/lib/efi_driver/efi_block_device.c
index 830fdab..5cccc0c 100644
--- a/lib/efi_driver/efi_block_device.c
+++ b/lib/efi_driver/efi_block_device.c
@@ -59,7 +59,7 @@
 static ulong efi_bl_read(struct udevice *dev, lbaint_t blknr, lbaint_t blkcnt,
 			 void *buffer)
 {
-	struct efi_blk_platdata *plat = dev_get_platdata(dev);
+	struct efi_blk_platdata *plat = dev_get_plat(dev);
 	struct efi_block_io *io = plat->io;
 	efi_status_t ret;
 
@@ -88,7 +88,7 @@
 static ulong efi_bl_write(struct udevice *dev, lbaint_t blknr, lbaint_t blkcnt,
 			  const void *buffer)
 {
-	struct efi_blk_platdata *plat = dev_get_platdata(dev);
+	struct efi_blk_platdata *plat = dev_get_plat(dev);
 	struct efi_block_io *io = plat->io;
 	efi_status_t ret;
 
@@ -169,7 +169,7 @@
 	/* Set the DM_FLAG_NAME_ALLOCED flag to avoid a memory leak */
 	device_set_name_alloced(bdev);
 
-	plat = dev_get_platdata(bdev);
+	plat = dev_get_plat(bdev);
 	plat->handle = handle;
 	plat->io = interface;
 
diff --git a/test/dm/acpi.c b/test/dm/acpi.c
index d0c49c7..1c7c6ca 100644
--- a/test/dm/acpi.c
+++ b/test/dm/acpi.c
@@ -53,7 +53,7 @@
 
 static int testacpi_get_name(const struct udevice *dev, char *out_name)
 {
-	struct testacpi_platdata *plat = dev_get_platdata(dev);
+	struct testacpi_platdata *plat = dev_get_plat(dev);
 
 	if (plat->return_error)
 		return -EINVAL;
@@ -442,13 +442,13 @@
 			buf);
 
 	/* Test handling of a device which doesn't produce a name */
-	plat = dev_get_platdata(dev);
+	plat = dev_get_plat(dev);
 	plat->no_name = true;
 	ut_assertok(acpi_device_path(child, buf, sizeof(buf)));
 	ut_asserteq_str("\\_SB." ACPI_TEST_CHILD_NAME, buf);
 
 	/* Test handling of a device which returns an error */
-	plat = dev_get_platdata(dev);
+	plat = dev_get_plat(dev);
 	plat->return_error = true;
 	ut_asserteq(-EINVAL, acpi_device_path(child, buf, sizeof(buf)));
 
diff --git a/test/dm/of_platdata.c b/test/dm/of_platdata.c
index 4f3cc15..afa7c2c 100644
--- a/test/dm/of_platdata.c
+++ b/test/dm/of_platdata.c
@@ -31,7 +31,7 @@
 	ut_asserteq_str("sandbox_clk_test", dev->name);
 
 	ut_assertok(uclass_next_device_err(&dev));
-	plat = dev_get_platdata(dev);
+	plat = dev_get_plat(dev);
 	ut_assert(plat->boolval);
 	ut_asserteq(1, plat->intval);
 	ut_asserteq(4, ARRAY_SIZE(plat->intarray));
@@ -54,7 +54,7 @@
 	ut_asserteq_str("", plat->stringarray[2]);
 
 	ut_assertok(uclass_next_device_err(&dev));
-	plat = dev_get_platdata(dev);
+	plat = dev_get_plat(dev);
 	ut_assert(!plat->boolval);
 	ut_asserteq(3, plat->intval);
 	ut_asserteq(5, plat->intarray[0]);
@@ -74,14 +74,14 @@
 	ut_asserteq_str("message", plat->stringarray[2]);
 
 	ut_assertok(uclass_next_device_err(&dev));
-	plat = dev_get_platdata(dev);
+	plat = dev_get_plat(dev);
 	ut_assert(!plat->boolval);
 	ut_asserteq_str("one", plat->stringarray[0]);
 	ut_asserteq_str("", plat->stringarray[1]);
 	ut_asserteq_str("", plat->stringarray[2]);
 
 	ut_assertok(uclass_next_device_err(&dev));
-	plat = dev_get_platdata(dev);
+	plat = dev_get_plat(dev);
 	ut_assert(!plat->boolval);
 	ut_asserteq_str("spl", plat->stringarray[0]);
 
@@ -181,7 +181,7 @@
 
 	ut_assertok(uclass_first_device_err(UCLASS_MISC, &dev));
 	ut_asserteq_str("sandbox_clk_test", dev->name);
-	plat = dev_get_platdata(dev);
+	plat = dev_get_plat(dev);
 
 	ut_assertok(device_get_by_driver_info_idx(plat->clocks[0].idx, &clk));
 	ut_asserteq_str("fixed_clock", clk->name);
diff --git a/test/dm/test-driver.c b/test/dm/test-driver.c
index 5c074cd..b9f49de 100644
--- a/test/dm/test-driver.c
+++ b/test/dm/test-driver.c
@@ -21,7 +21,7 @@
 
 static int testdrv_ping(struct udevice *dev, int pingval, int *pingret)
 {
-	const struct dm_test_pdata *pdata = dev_get_platdata(dev);
+	const struct dm_test_pdata *pdata = dev_get_plat(dev);
 	struct dm_test_priv *priv = dev_get_priv(dev);
 
 	*pingret = pingval + pdata->ping_add;
diff --git a/test/dm/test-fdt.c b/test/dm/test-fdt.c
index 4fb8ea4..2d66d044 100644
--- a/test/dm/test-fdt.c
+++ b/test/dm/test-fdt.c
@@ -40,7 +40,7 @@
 
 static int testfdt_ofdata_to_platdata(struct udevice *dev)
 {
-	struct dm_test_pdata *pdata = dev_get_platdata(dev);
+	struct dm_test_pdata *pdata = dev_get_plat(dev);
 
 	pdata->ping_add = fdtdec_get_int(gd->fdt_blob, dev_of_offset(dev),
 					"ping-add", -1);
@@ -132,7 +132,7 @@
 
 static int testprobe_drv_probe(struct udevice *dev)
 {
-	struct dm_testprobe_pdata *pdata = dev_get_platdata(dev);
+	struct dm_testprobe_pdata *pdata = dev_get_plat(dev);
 
 	return pdata->probe_err;
 }
@@ -167,7 +167,7 @@
 
 static int testdevres_drv_bind(struct udevice *dev)
 {
-	struct dm_testdevres_pdata *pdata = dev_get_platdata(dev);
+	struct dm_testdevres_pdata *pdata = dev_get_plat(dev);
 
 	pdata->ptr = devm_kmalloc(dev, TEST_DEVRES_SIZE, 0);
 
@@ -445,7 +445,7 @@
 
 	/* Remove them and try again, with an error on the second one */
 	ut_assertok(uclass_get_device(UCLASS_TEST_PROBE, 1, &dev));
-	pdata = dev_get_platdata(dev);
+	pdata = dev_get_plat(dev);
 	pdata->probe_err = -ENOMEM;
 	device_remove(parent, DM_REMOVE_NORMAL);
 	ut_assertok(uclass_first_device(UCLASS_TEST_PROBE, &dev));
@@ -454,7 +454,7 @@
 
 	/* Now an error on the first one */
 	ut_assertok(uclass_get_device(UCLASS_TEST_PROBE, 0, &dev));
-	pdata = dev_get_platdata(dev);
+	pdata = dev_get_plat(dev);
 	pdata->probe_err = -ENOENT;
 	device_remove(parent, DM_REMOVE_NORMAL);
 	ut_asserteq(-ENOENT, uclass_first_device(UCLASS_TEST_PROBE, &dev));
@@ -541,21 +541,21 @@
 	ut_assertok(check_devices(uts, devlist, 0));
 
 	/* Remove them and try again, with an error on the second one */
-	pdata = dev_get_platdata(devlist[1]);
+	pdata = dev_get_plat(devlist[1]);
 	pdata->probe_err = -ENOENT - 1;
 	device_remove(parent, DM_REMOVE_NORMAL);
 	ut_assertok(check_devices(uts, devlist, 1 << 1));
 
 	/* Now an error on the first one */
-	pdata = dev_get_platdata(devlist[0]);
+	pdata = dev_get_plat(devlist[0]);
 	pdata->probe_err = -ENOENT - 0;
 	device_remove(parent, DM_REMOVE_NORMAL);
 	ut_assertok(check_devices(uts, devlist, 3 << 0));
 
 	/* Now errors on all */
-	pdata = dev_get_platdata(devlist[2]);
+	pdata = dev_get_plat(devlist[2]);
 	pdata->probe_err = -ENOENT - 2;
-	pdata = dev_get_platdata(devlist[3]);
+	pdata = dev_get_plat(devlist[3]);
 	pdata->probe_err = -ENOENT - 3;
 	device_remove(parent, DM_REMOVE_NORMAL);
 	ut_assertok(check_devices(uts, devlist, 0xf << 0));
diff --git a/test/dm/video.c b/test/dm/video.c
index 1af948d..da0ae36 100644
--- a/test/dm/video.c
+++ b/test/dm/video.c
@@ -107,7 +107,7 @@
 
 	ut_assertok(uclass_find_device(UCLASS_VIDEO, 0, &dev));
 	ut_assert(!device_active(dev));
-	plat = dev_get_platdata(dev);
+	plat = dev_get_plat(dev);
 	plat->vidconsole_drv_name = "vidconsole0";
 
 	return 0;
@@ -217,7 +217,7 @@
 
 	ut_assertok(uclass_find_device(UCLASS_VIDEO, 0, &dev));
 	ut_assert(!device_active(dev));
-	plat = dev_get_platdata(dev);
+	plat = dev_get_plat(dev);
 	plat->rot = rot;
 
 	ut_assertok(uclass_get_device(UCLASS_VIDEO, 0, &dev));
@@ -359,7 +359,7 @@
 
 	ut_assertok(uclass_find_device(UCLASS_VIDEO, 0, &dev));
 	ut_assert(!device_active(dev));
-	plat = dev_get_platdata(dev);
+	plat = dev_get_plat(dev);
 	plat->font_size = 100;
 
 	ut_assertok(uclass_get_device(UCLASS_VIDEO, 0, &dev));
@@ -380,7 +380,7 @@
 
 	ut_assertok(uclass_find_device(UCLASS_VIDEO, 0, &dev));
 	ut_assert(!device_active(dev));
-	plat = dev_get_platdata(dev);
+	plat = dev_get_plat(dev);
 	plat->font_size = 100;
 
 	ut_assertok(uclass_get_device(UCLASS_VIDEO, 0, &dev));
